Version 11 (modified by 14 years ago) (diff) | ,
---|
TOC(titleindex,heading=リンク,pne)?
API開発プロジェクト
はじめに
外部からOpenPNEのデータを取得したり、操作するためのAPIを開発するプロジェクトです。 ニーズのありそうなAPIから優先的に開発し、将来的には数を増やし整備していくを目標にします。
APIのインタフェースとしては、さまざまあるかと思います。 しかしながら、まずは数を増やすことを優先し、 既存のXML_RPC方式を踏襲する方針を考えています。 #その他のアイデアをお持ちの方は書き込みお願いします。
ブランチ
- ブランチは https://trac.openpne.jp/svn/OpenPNE/branches/prj/pne-api
- 現在2.8.2ベースで開発中です。2.10には5個程度のAPIを追加できそうな予定です。
XML_RPC方式 API 開発方針
- APIプログラム配置ディレクトリ
- webapp\modules\api\lib\xmlrpc\
- PHPファイル名
prefix_数字(3桁)_動作概要.php 例: コミュニティを作成する場合 com_001_create_community.php 数字は通し番号で管理する(管理方法は要検討)
- prefix
- 動作に関連するprefixを選択する
au - 認証 as - あしあと ba - バナー bo - ブックマーク com - コミュニティ di - 日記 fr - フレンド im - 画像 mem - メンバ mes - メッセージ po - ポイント ra - ランキング re - レビュー sce - スケジュール
- 動作に関連するprefixを選択する
- API追加手順
(1)webapp\modules\api\lib\xmlrpc\ に prefix_数字(3桁)_動作概要.php を作成する (2)DBのテーブル c_api に以下のデータをinsertする c_api_id:数字(シーケンシャル) name:APIの名前 ip:呼び出し元のIPアドレス *APIは許可されたIPアドレスからしかアクセスできない *http://ホスト/?m=admin&a=page_list_c_api からも設定可能
- API の内部処理
(1)パラメータのvalidateチェック (2)パラメータに従いデータをDBから検索・更新 (2-1)対応するSQLメソッドが webapp/lib/db 以下のファイルに存在する可能性が高いので調べてみる (2-2)存在すればSQLメソッドを webapp\lib\OP.php(新設) にコピーし定義する この時、メソッド名は次のように変更する db_ashiato_c_ashiato_list4c_member_id ↓ op_ashiato_c_ashiato_list4c_member_id *OP.php内では OPクラスを定義し、全メソッドをstaticメソッドとして定義する *この点はwebapp/lib/db 以下のファイルと異なる (2-3)webapp/lib/db に存在しなければ、op.php にメソッドを追加する (2-4)(2-2,3)で追加したメソッドをAPI内部から呼ぶ (3)検索・更新したデータをレスポンスとして返却 *op.phpへコピーする理由 webapp/lib/db 以下のメソッドは仕様変更が発生する可能性がある。 これとは別に仕様を固定したメソッドを作成し、 ブラウザ、API双方から呼び出せるような仕組みを取り入れたい。 これに対応するため webapp\lib\op\op.php を追加する。 まずは、APIで使用するメソッドを随時 op.php に再定義することでメソッドの数を増やしていく。 詳細は以下に記載 http://trac.openpne.jp/wiki/pne-framework - op_関数の新設に従う
プロジェクトチケット
component=pne-api
- #1014
- op_退会関数の追加
- #1040
- op_create_community コミュニティ作成関数作成
- #1041
- APIラッピング xml4op関数を作成
- #1042
- op_add_member_4_community コミュニティへのメンバ追加関数作成
- #1043
- op_delete_member_4_community コミュニティからのメンバ退会関数作成
- #1044
- op_search_member SNS内のメンバ検索関数作成
- #1045
- op_search_myfriend マイフレンド検索関数作成
- #1046
- op_delete_community コミュニティ削除関数作成
- #1047
- op_get_diary 最近更新された日記取得関数作成
- #1320
- 認証API
- #1340
- 日記取得API
- #1341
- コメント書き込みAPI
- #1342
- あしあと取得API
- #1343
- あしあと書き込みAPI
- #1431
- pne-apiブランチ取り込み
- #1498
- API で返される no_image.gif が表示されない
- #1883
- メンバートークンの値が変更されない