2014-06-05 104 views
0

我想把兩個參數稱爲名稱(這將是唯一的)和位置。 我需要從REST網址中獲取這兩個。 哪種方法更適合添加信息的REST API端點

1. POST /info/{name} and location as request body(String). 
2. POST /info?name=""&location="" 
3. POST /info and requestbody containing both as JSON 
{ 
"name": "somename", 
"location":"somelocation" 
} 
+0

它取決於您的信息端點的語義。如果你的名字被用作標識符,那麼#1將會去。我猜,最廣泛使用的方法是#3。 –

+0

2是一個GET,你也說你想放,但你只提及帖子 –

回答

0

#3是去的原因有兩個方式:

  1. /info是一個「設置對象的」相關或給定類型的基本URL,並按照REST哲學,您可以使用POST來添加新元素。
  2. 當您添加一個元素時,您可以在合約中指定一段數據是新元素的ID,以便爲其編寫URL爲/info/{ID}

這是您的#3案例。 #1並不遵循REST哲學,因爲您會將該元素轉換爲容器本身。如果您在合同中指定數據,而不是在URL中提交,那麼#2也可以使用,但#3更常見。

+0

我認爲你是對的,但我正在等待澄清他的意思*放* –