在您的資料庫中建立一筆新的紀錄。
POST /:model
回應一個 JSON 字典,代表新建立的實例。如果發生驗證錯誤,則會改為傳回包含無效屬性和 400
狀態碼的 JSON 回應。
此外,如果 autoWatch
設定 為開啟狀態 (預設為開啟),則會將 "created" 通知發布到所有正在監看此模型的客戶端 socket;也就是說,先前已向 "Find" 藍圖動作發送請求的客戶端 socket。這些相同的 socket 也將被訂閱以接收關於新紀錄後續變更的通知。
最後,如果此藍圖動作是透過 socket 請求觸發的,則請求的 socket 也將被訂閱以接收新建立的紀錄。換句話說,如果後續使用藍圖更新或刪除該紀錄,則會向該客戶端 socket 發送訊息,告知他們變更。請參閱 .subscribe()
以取得更多資訊。
參數應在 請求主體 中發送。 預設情況下,Sails 理解最常見的主體參數編碼類型,包括 url 編碼、表單編碼和 JSON。
參數 | 類型 | 詳細資訊 |
---|---|---|
model | 應在其中建立新紀錄的模型的 識別名稱 (identity)。 例如: 'purchase' (在 POST /purchase 中) |
|
_*_ | 發送與模型上定義的屬性名稱相同的 主體參數,以在您的新紀錄上設定這些值。 這些值的處理方式與將它們傳遞到模型的 .create() 方法中的方式相同。 |
建立一個名為 "Applejack" 的新使用者,其嗜好為 "pickin",並參與購買項目 #13 和 #25
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,則每個「正在監看」此模型的 socket 客戶端 (已向模型的 "find where" 藍圖動作 發送請求) 都將收到 "created" 通知,其中事件名稱為模型識別名稱 (例如 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。 有關這些通知結構的更多資訊,請參閱 藍圖 > 加入至。