wiki:pne-api
 ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Version 9 (modified by yoshi, 12 years ago) (diff)

--

TOC(titleindex,heading=リンク,pne)?

API開発プロジェクト

はじめに

外部からOpenPNEのデータを取得したり、操作するためのAPIを開発するプロジェクトです。 ニーズのありそうなAPIから優先的に開発し、将来的には数を増やし整備していくを目標にします。

APIのインタフェースとしては、さまざまあるかと思います。 しかしながら、まずは数を増やすことを優先し、 既存のXML_RPC方式を踏襲する方針を考えています。 #その他のアイデアをお持ちの方は書き込みお願いします。

ブランチ

XML_RPC方式 開発方針

■APIプログラム配置ディレクトリ webapp\modules\api\lib\xmlrpc\

■名前 prefix_数字(3桁)_動作概要.php

例: コミュニティを作成する場合 com_001_create_community.php

数字は通し番号で管理する(管理方法は要検討)

■prefix 動作に関連するprefixを選択する

au - 認証 as - あしあと ba - バナー bo - ブックマーク com - コミュニティ di - 日記 fr - フレンド im - 画像 mem - メンバ mes - メッセージ po - ポイント ra - ランキング re - レビュー sce - スケジュール

■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
メンバートークンの値が変更されない