-
资源:资源是数据的一部分,例如:用户
-
集合:一组资源称为集合,例如:用户列表
-
URL:标识资源或集合的位置,例如:/user
例如,如果你想要获得订单列表。
/systemOrders或system_orders
应该:
/system-orders
/system-orders/{order_id}
/system-orders/{OrderId}
/system-orders/{orderId}
GET /user
GET /User
GET /users
GET /shops/:shopId/category/:categoryId/price
GET /shops/:shopId/或GET /category/:categoryId
POST /updateuser/{userId}
GET /getusers
PUT /user/{userId}
POST /alarm/245743/resend
{
user_name: "Mohammad Faisal"
user_id: "1"
}
{
userName: "Mohammad Faisal"
userId: "1"
}
product_order
product-orders
-
API蓝图:https://apiblueprint.org/
-
Swagger:https://swagger.io/
应该:http://api.domain.com/v1/shops/3/products
{
users: [
...
]
}
{
users: [
...
],
total: 34
}
GET /shops?offset=5&limit=5
GET /shops?fields=id,name,address,contact
GET /shops/123?token=some_kind_of_authenticaiton_token
Authorization: Bearer xxxxxx, Extra yyyyy
content-type: application/json
-
GET /shops/2/products:从shop 2获取所有产品的列表。
-
GET /shops/2/products/31:获取产品31的详细信息,产品31属于shop 2。
-
DELETE /shops/2/products/31:应该删除产品31,它属于商店2。
-
PUT /shops/2/products/31:应该更新产品31的信息,只在resource-URL上使用PUT,而不是集合。
-
POST /shops:应该创建一个新的商店,并返回创建的新商店的详细信息。在集合url上使用POST。
-
当由于一个或多个服务错误而拒绝客户端请求时,一定要返回4xx HTTP错误代码。
-
考虑处理所有属性,然后在单个响应中返回多个验证问题。
-
扁平比嵌套好。
-
简单胜于复杂。
-
字符串比数字好。
-
一致性比定制更好。