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

Version 7 (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_関数の新設に従う