REST GETクエリの投影の指定はRESTの原則に違反していますか、それとも良い方法ですか?
は、新しいを定義するために、完全に大丈夫だ人は、大きなモデルであり、私の現在の要件のために、私は唯一の(私はUIのグリッドを作成していますと言う)指定されたフィールドの値を必要とするため、これはあるかもしれない、/person?fields=fname,lname, address
ようREST GETクエリの投影の指定
答えて
をAPIを考えてみましょう現在のリソースが必要なものをサポートしていない場合は、リソースそれがまさにRESTの仕組みです。
あなたのケースでは、/person?fields=fname,lname, address
のURI定義は完全に有効です。
URI構造は重要ではないことに注意してください。URIテンプレートと変数を記述するクライアントへのリンクを提供する必要があります。ですから、このようなリンクの何か(架空のハイパーメディアJSON形式)を返す必要があります。/meta
はそれぞれの種類とラベルを記述する場所で
{
"_links": {
"/meta/person/list": {
"href": "/person{?fields}",
"vars": {
"fields": {
"required": false,
"composition": [
"fname": {
"meta": "/meta/person/fname"
},
"lname": {
"meta": "/meta/person/lname"
},
"address": {
"meta": "/meta/person/address",
"alternatives": {
"href": "/locations",
"meta": "/meta/locations"
}
}
]
}
}
}
}
}
をparamsは:
GET /メタ/人/ fnameの
{
"type": "string",
"label": "First name",
"_links": {
"self": {
"href": "/meta/person/fname"
}
}
}
c。クライアントとの最初の動きは、メタ全体または少なくとも最も頻繁に使用される部分を取得する必要があります。リンクを処理することで、クライアントはメタ記述とこの特別なハイパーメディアJSON形式のみを理解できなければなりません。 URI構造は完全に無関係です。リンクが何であるかを理解するためにメタのみを使用する必要があります。
現時点では、JSONレスポンスのリンクを記述する方法についての標準はありません。 Hydra + Json-LD、HAL、HyperSchemaなどのハイパーメディア形式がありますが、afaik。それらのどれもまだ標準ではありません。 (おそらく、HydraのRDFのvocabは最も近いものですが、まだ準備ができていません.Json-LDは既にRDFを表現するための標準的な方法です)。
これで、 というURIとその意味は、この種のサービス/クライアントはRESTのuniform interface/HATEOASという制約に違反しているため、RESTクライアントではありません。 Ofc。今日はppl。トピックについてのJon Snowだけを知っている場合でも、すべてをREST、RESTful、APIとして呼び出します。 Btw。 RESTの方法でWebアプリケーションを実装したくない場合は、悲劇はありません。これは要件にのみ依存します。たとえば、アプリケーションに多数のユーザーやサードパーティの開発者がいない場合、どのパスを選択するかは問題になりません。
- 1. MongoDB 10genドライバのクエリ投影
- 2. スプリングデータREST:単一リソースの投影表現
- 3. URIで指定されたクエリが有効でない+投影+ LINQ選択
- 4. nhibernateクエリへの投影の追加
- 5. 投影の設定点
- 6. 埋め込みエンティティのGQL投影クエリ
- 7. FormCollectionからのC#LINQクエリ/投影
- 8. mongodb集計クエリ、投影、$ size、$ split
- 9. rmongodb:投影クエリで指定してフィールドの順序を強制する方法は?
- 10. 変数をfind()内の投影のフィールド指定子として使用する
- 11. のMongoDB投影
- 12. モデル空間の座標への投影空間の逆投影
- 13. クエリを投影クエリに変換してコストを節約する
- 14. D3のArmadillo投影
- 15. Leafletjsのセットアップ投影
- 16. Verticaデータベースの投影
- 17. 残りの投影
- 18. 3Dから2Dへの投影アルゴリズム(透視投影) - Javascript
- 19. NHibernate QueryOverの投影法 - コレクションをDTOに投影する
- 20. にVertica:スーパー投影文は二つのサブ投影
- 21. OpenLayersを:ベースレイヤーオーバーレイ - 投影
- 22. 匿名の辞書にクエリを投影する<string,int>
- 23. Nhibernate SQLの名前付きクエリと投影
- 24. WCF REST 404 GET
- 25. RESTとGET ... again
- 26. REST Get/PostStandards
- 27. OpenLayersプロパティ "投影"を設定/変更
- 28. ビューを正射投影に設定
- 29. Linq投影でEntityCollectionを設定する
- 30. OpenGL透視投影を設定する
これは非常に良い習慣です。あらゆる要求に対して巨大なオブジェクトを送り返すよりもはるかに優れています。 –