1

私は webapp を実装していて、RESTfull の設計基準に準拠したいと考えています。私の質問は次のとおりです。

コレクションを持つクラスが与えられます。

Person { id :: 整数名 :: 文字列の友達 :: 人物のコレクション }

Person クラスのインターフェイスを実装する「最も」正しい方法は次のとおりです。

1.

example.com/REST/persons -> [... {id: '2', name: 'Pete', friends: [1,4,6]} ... ]
example.com/REST/persons/2 -> {id: '2', name: 'Pete', friends: [1,4,6]}

人物クラスの検索機能を使用して、どこで友達を検索しますか?

また

2.

example.com/REST/persons -> [... {id: '2', name: 'Pete'} ... ]
example.com/REST/persons/2 -> {id: '2', name: 'Pete'}
example.com/REST/persons/2/friends -> [{id: '1', name: 'Joann'}, 
                                       {id: '4', name: 'Jim'},
                                       {id: '6', name: 'Charlie'}]

コレクション内の要素が人物インスタンスのフィールドとして検索される場所。

両方が実装されているのを見てきましたが、標準に準拠したいと思います。

3番目の方法が私に急上昇しました。

example.com/REST/persons/2 -> {id     : '2', 
                               name   : 'Pete', 
                               friends: [example.com/REST/person/1,
                                         example.com/REST/person/4,
                                         example.com/REST/person/6]}

したがって、インターフェイス イベントをより RESTfull にします。クライアントは、実装について何も知らなくても、インターフェイス全体をトラバースできるようになりました。

どこかで何らかのインプットがあることを願っています。

4

1 に答える 1

1

持つことexample.com/REST/persons/{person-id}/friends/{friends-id}は正しいアプローチです。REST 自体は URL 構成ルールを適用しませんが、ほとんどの人がそうしています。

基本的に、多対多の関係を持つリソースPersonとサブリソースがあります。Friend

于 2013-02-05T17:40:21.393 に答える