0

ほとんどの入力パラメーターが JSON 要求オブジェクトとして配置される要求があります。文書化の目的で、ユーザーが入力できる最も一般的なフィールドを指定したいのですが、JSON 要求に入る名前の値には多くの変動性があり、これらすべてを文書化したくありません。面倒になる。

ここに私が今持っているもののスクリーンショットがあります:

エクスプローラーの API

例として、"people-with" という JSON プロパティを入れて "['joe','paul','jane'] に設定したい場合、それは JSON で簡単に実行できますが、どうすればよいですか?私の PHP/Restler コードでそれを拾います. 現在、このサービスの署名は次のとおりです。

/**
 * ADD an Activity
 *
 * Add a new action to a user's stream
 *
 * @url POST /{user_id}
 *
 * @param integer   $user_id    The user_id for whom the actions apply; you can insert the text "self" and it will resolve to the current/default user
 * @param string    $start_time {@from body} The date/time that the activity was started (YYYY-MM-DD or YYYY-MM-DD HH:mm:SS)
 * @param string    $action     {@from body} The action "slug name" that uniquely identifies an action
 * @param string    $end_time   {@from body} The date/time that the activity concluded (YYYY-MM-DD or YYYY-MM-DD HH:mm:SS)
 * @param string    $app_id     {@from body} The application that captured this activity
 * @param string    $proxy_user_id  {@from body} The person who captured this activity for the individual
 * @param string    $location   {@from body} The location information associated with this activity
*/
public function add_action ($user_id, $start_time, $action, $end_time=null, $app_id=null, $proxy_user_id=null, $location=null)
{
    // implement
}

ps 補足として、数日前に発生した POST の問題を回避するために、この API サービスを一時的に PUT に変更しました。

4

1 に答える 1

0

わかりました、これを解決するための鍵は$request_data連想配列にあります。したがって、(キーフィールドの)ドキュメントを作成し、POST / PUTサービスに値を動的に受信できるようにするには、次のようにする必要があります。

/**
 * ADD an Activity
 *
 * Add a new action to a user's stream
 *
 * @url PUT /{user_id}
 *
 * @param integer   $user_id    The user_id for whom the actions apply; you can insert the text "self" and it will resolve to the current/default user
 * @param string    $start_time {@from body} The date/time that the activity was started (YYYY-MM-DD or YYYY-MM-DD HH:mm:SS)
 * @param string    $action_nm  {@from body} The action "slug name" that uniquely identifies an action
 * @param string    $end_time   {@from body} The date/time that the activity concluded (YYYY-MM-DD or YYYY-MM-DD HH:mm:SS)
 * @param string    $app_id     {@from body} The application that captured this activity
 * @param string    $proxy_user_id  {@from body} The person who captured this activity for the individual
 * @param string    $location   {@from body} The location information associated with this activity
*/
public function add_activity ($user_id, $start_time, $action_nm, $end_time=null, $app_id=null, $proxy_user_id=null, $location=null, $request_data=null)

$ request_dataにはありません@paramが、$request_dataが関数シグネチャの最後でハングしていることに注意してください。'test' : 'me'ここで、リクエストのJSONで次のものを渡したと想像してください。これで、次のハンドラーでそれを取得できます。

echo $request_data['test']; // prints "me"

これは機能し、ドキュメントも想定どおりに表示されます(上のスクリーンショットを参照)。

最後に、興味のある方は、$request_data配列を介してすべてのJSON変数にアクセスできます。つまり、次のことを意味します。

echo ($request_data['user_id'] === $user_id); // TRUE
于 2013-02-05T13:07:02.790 に答える