データベースに新しいレコードを作成します。
POST /:model
新しく作成されたインスタンスを表すJSON辞書を返します。検証エラーが発生した場合は、無効な属性と400
ステータスコードを含むJSONレスポンスが代わりに返されます。
さらに、autoWatch
設定がオンになっている場合(デフォルトでオンになっています)、このモデルを監視しているすべてのクライアントソケット(つまり、以前に「検索」ブループリントアクションへのリクエストを送信したクライアントソケット)に「作成」通知が公開されます。それらの同じソケットは、新しいレコードに対するその後の変更についても通知されるようにサブスクライブされます。
最後に、このブループリントアクションがソケットリクエストを介してトリガーされた場合、リクエスト元のソケットも新しく作成されたレコードにサブスクライブされます。言い換えると、ブループリントを使用してレコードがその後更新または削除された場合、変更を知らせるメッセージがそのクライアントソケットに送信されます。.subscribe()
の詳細については、こちらを参照してください。
パラメータはリクエストボディで送信する必要があります。デフォルトでは、SailsはURLエンコーディング、フォームエンコーディング、JSONなど、ボディパラメータの最も一般的なエンコーディングタイプを理解しています。
パラメータ | タイプ | 詳細 |
---|---|---|
モデル | 新しいレコードを作成するモデルのアイデンティティ。 例: 'purchase' (POST /purchase の場合) |
|
_*_ | 新しいレコードにそれらの値を設定するには、モデルで定義されている属性と同じ名前でボディパラメータを送信します。 これらの値は、モデルの.create()メソッドに渡された場合と同じように処理されます。 |
趣味が「pickin」で、購入番号13と25に関与している「Applejack」という名前の新しいユーザーを作成します。
POST /pony
{
"name": "Applejack",
"hobby": "pickin",
"involvedInPurchases": [13,25]
}
{
"id": 47,
"name": "Applejack",
"hobby": "pickin",
"createdAt": 1485550575626,
"updatedAt": 1485550603847,
"involvedInPurchases": [
{
"id": 13,
"amount": 10000,
"createdAt": 1485550525451,
"updatedAt": 1485550544901
},
{
"id": 25,
"amount": 4.50,
"createdAt": 1485550561340,
"updatedAt": 1485550561340
}
]
}
アプリケーションでWebSocketsを有効にしている場合、このモデルを「監視」している(モデルの"find where"ブループリントアクションにリクエストを送信した)すべてのソケットクライアントは、「作成」通知を受信します。イベント名はモデルのアイデンティティ(例:user
)であり、メッセージは次の形式になります。
verb: 'created',
data: <a dictionary of the attribute values of the new record (without associations)>
id: <the new record primary key>,
たとえば、上記の例を続けると、User
モデルを監視しているすべてのクライアント(リクエストを行っているクライアントを除く)は、次のメッセージを受信します。
id: 47,
verb: 'created',
data: {
id: 47,
name: 'Applejack',
hobby: 'pickin',
createdAt: 1485550575626,
updatedAt: 1485550603847
}
新しく関連付けられた子レコードを購読しているクライアントも通知を受け取ります。
上記の例では、新しいレコードにinvolvedInPurchases
の初期値が含まれていたため、反対側のvia
によって示される関連付けである場合、addedTo
通知は、関係の反対側にあるそれらの関連付けられた子レコード(この場合は、購入13と25)を購読しているクライアントにも送信されます。これらの通知の構造については、ブループリント > 追加を参照してください。