2017-01-06 6 views
0

GET、POST、PUTの3つのメソッドをサポートするエンドポイントがあるとします。型定義のアプローチ

返される型は、idnameの2つの属性があります。どちらもrequiredです。

私の質問はPOSTに、idが自動的cratedしなければならないとPUTidURIパラメータになるため、RAML定義でこのタイプを定義する方法についてです。皆さんはidrequiredとして宣言して、2つのTypes(GETとPUT、POST用の2つ)を作成するか、すべての操作で同じタイプを使用しますか?

申し訳ありませんが、このような基本的な質問が表示されますが、私はこれを検索し、決定的な回答は得られませんでした。

ありがとうございます!

答えて

1

恐らく、あなたはどのように動作するかの例を挙げることができます。また、使用しているRAMLのバージョンを指定してください(現在は1.0と仮定しています)。

エンドポイントにはPOSTが用意されています。これは、あなたがアイテムを追加できる何らかのコレクションを意味します。次に、GETを使用してそのような項目を取得できます。

  • あなたはあなたのコレクションのアイテムに対して第2のエンドポイントを作成することができます:あなたは/collection(全項目)で終わると/collection/12345678(単独で1項目、具体的には、ID 12345678を持つアイテム)
  • ます

(代わりに、複数の項目が含まれているために起こるコレクションのサブセット)たぶん、あなたもの使用に見ることができ/collection?id=12345678:またはあなたがその特定の項目を見つけるためにあなたのコレクションをフィルタリングするクエリ文字列を使用することができますuriParameters

説明するために:

/types: 
    myidtype: 
     type: string 
     pattern: ^[0-9]{8}$ 
/collection: 
    get: # to retrieve the entire collection 
     queryParameters: # to be able to filter the collection into a subset of 1 or more items 
      id: 
       type: myidtype 
       required: false 
      name: 
       type: string 
       required: false 
    post: # to create a new item and add it to the collection, id and name will go in the body 
    /{myId}: # this is one item 
     uriParameters: 
      myId: 
       type: myidtype 
     get: # to retrieve all information on this item 
     post: # to post some property to this item 

を私の例では、完全に正確でないことに注意してください。これは、正確な構文ではなく概念に関するものです。