RESTfulサービスを構築しようとしていますが、いくつかの問題に直面しています。これらの問題(質問)について、架空のRESTfulサービスの例を使用して説明します。
たとえば、自分のサイトに「ニュース」サービスが必要です。ニュースには、ローカルニュースとグローバルニュースのさまざまな種類があります。ニュースは管理者によって追加されます。ユーザーは、ローカルニュースとグローバルニュースの両方を(個別にまたはまとめて)表示できます。ニュースはページごとに表示されます。ユーザーは正確なニュースを見ることができます。
だから、私はこのタスクのためにそのような動詞-名詞テーブルを作成しました:
GET /news - Get all news
POST /news - Create news
GET /news/{id} - Show the news with id={id}
PUT /news/{id} - Edit the news with id={id}
GET /news/{type}/{page}/{per_page} - Get news page #{page} of type {type}
GET /news/{page} - Get news page #{page} of both types
したがって、問題があります。
1){page}と{id}を区別する方法は?たぶん{id}は数字だけですが、{page}-'p'で始まる文字列(たとえば'p1'}?
2)ユーザーは値「per_page」を変更できます-ページに表示されるニュースの数。複雑すぎません/news/{type}/{page}/{per_page}
か?どうすれば簡単にできますか?
3)このサービスでは、ブラウザのURLはどのように表示されますか?URLは上の表のURIと正確ではありませんか?例えば:
/news - Viewing news (1st page with default 'per_page' and default 'type')
/news/{type} - Viewing news (1st page with default 'per_page' and type={type})
/news/{id} - Viewing exact news with id={id}
/news/{type}/{page}/{per_page} - Viewing exact page of news of exact type.
4)追加機能。たとえば、フィルター検索(日付、著者、またはタイトルでニュースを取得する)。これをRESTで実現するにはどうすればよいですか?フィルタオブジェクト(xmlまたはjson)はどのように送信する必要がありますか?フィルタの結果を使用してページのURLを作成するにはどうすればよいですか?/news/{date:12.12.2012,author:'admin'}
または何かより良いですか?
私の大まかな英語で申し訳ありませんが、文法などの間違いを見つけた場合は、遠慮なく修正してください。
前もって感謝します。