0

私は最初の API を構築しようと考えており、SOAP から RESTful API まで、さまざまなタイプの API について多くの調査を行ってきました。私は、RESTful メソッドが私のニーズに最も適していると思うので、http ヘッダーを使用して RESTful メソッドを使用することにしました。

RESTful API スキームがどのように機能するかについて多くのことを読んだ後、誰かが私を助けてくれることを望んでいた質問があります。これは、パズルの欠けているピースのように思えます。

私は通常、 、 、 、または特定の URL のいずれかを介してデータを送信することを知っていPOSTますGETPUTDELETEサーバーapp/user/{userid}/{property}側でそれがどのように解釈されるかはわかりません。明らかに、さまざまなユーザー用の無限のディレクトリはありません。これは、これらの要求をキャッチするための htaccess ファイル内の何らかの操作ですか? 誰かがこの問題に光を当てることができますか?

ありがとう!

4

2 に答える 2

2

もちろん、巨大なディレクトリ構造を維持し、POST/PUT で新しいファイルとディレクトリを作成することを妨げるものは何もありません。しかし、これは面倒でエラーが発生しやすくなります。

サーバー側の技術が必要です。REST を念頭に置いて構築するのが理想的です。このテクノロジー/フレームワークはURLパターンを理解し、それらをコントローラー/ハンドラー/コードの一部にマップし、例のようuseridにパス変数を抽出できますproperty

たとえば、には、次のように記述できる標準があります。

@Path("app/user/{userid}/{property}")
public class UserResource {

    @GET
    public String getUserProperty(
        @PathParam("userid") int userId, 
        @PathParam("property") String property
    ) {
            //...
    }
}

フレームワークが低レベルのものをいかにうまく処理するかご覧ください。たとえば、アクセスするたびにandGET app/user/42/salaryが抽出され、適切な引数で呼び出されます。42salarygetUserProperty

このようなフレームワークのもう 1 つの利点は、desired に基づく自動マーシャリング/アンマーシャリングですContent-type。ライブラリは JSON/XML をアンマーシャリングし、オブジェクトをコントローラ メソッドに渡し、返されたオブジェクトを何らかの表現にマーシャリングします。

于 2012-07-08T13:15:28.677 に答える
0

フレームワークを使用して、ルートを簡単に定義できます。

たとえば、php で silex を使用すると、次のようなルートを定義できます。

// index.php
require_once __DIR__.'/../vendor/autoload.php'; 

$app = new Silex\Application(); 

// If we stored users in an array ...
$users = array(
    1 => 'Adrien',
    2 => 'John',
);

$app->get('/users/{id}', function($id) use($app, $users) { 
    return $users[$id]; 
}); 

$app->run(); 

その後、次のことができるようになりますcurl -X GET -i http://localhost/index.php/users/1

ここで silex のドキュメントを見ることができますhttp://silex.sensiolabs.org/

于 2012-07-08T13:16:58.907 に答える