相关疑难解决方法(0)

REST API 404:错误的URI或缺少资源?

我正在构建REST API,但我遇到了一个问题.

似乎在设计REST API时接受的做法是,如果请求的资源不存在,则返回404.

但是,对我来说,这增加了不必要的模糊性.传统上,HTTP 404与错误的URI相关联.所以实际上我们说"要么你到了正确的地方,但那个特定的记录不存在,或者互联网上没有这样的位置!我真的不确定哪一个......"

考虑以下URI:

http://mywebsite/api/user/13
Run Code Online (Sandbox Code Playgroud)

如果我得到404,那是因为用户13不存在吗?或者是因为我的网址应该是:

http://mywebsite/restapi/user/13
Run Code Online (Sandbox Code Playgroud)

过去,HTTP 200 OK如果记录不存在,我只返回带有响应代码的NULL结果.它很简单,在我看来非常干净,即使它不一定是公认的做法.但是有更好的方法吗?

rest web-services http

190
推荐指数
8
解决办法
18万
查看次数

REST API - 在单个请求中批量创建或更新

让我们假设有两个资源Binder,并Doc具有关联关系意味着DocBinder自己站.Doc可能属于也可能不属于BinderBinder可能为空.

如果我想设计一个REST API,允许用户发送一个Docs 的集合,在单个请求中,如下所示:

{
  "docs": [
    {"doc_number": 1, "binder": 1}, 
    {"doc_number": 5, "binder": 8},
    {"doc_number": 6, "binder": 3}
  ]
}
Run Code Online (Sandbox Code Playgroud)

对于每个文档docs,

  • 如果doc存在则将其分配给Binder
  • 如果doc不存在,请创建它然后分配它

我真的很困惑这应该如何实现:

  • 使用什么HTTP方法?
  • 必须返回什么响应代码?
  • 这甚至适合REST吗?
  • URI怎么样?/binders/docs
  • 处理批量请求,如果一些项目引发错误但另一个项目通过该怎么办.必须返回什么响应代码?批量操作应该是原子的吗?

api rest

80
推荐指数
4
解决办法
8万
查看次数

REST:映射404 HTTP状态代码

我们的团队正在开发RESTFul应用程序......我们正在讨论"最佳实践"方法.

是否应该为类似过滤器的查询返回404状态代码响应?说我的GET URL是

.../1 /服务/ startsWith/a.json

并且它返回在我的数据库中以A开头的所有值...但如果没有找到"a"值,我应该只返回带有空json字符串的状态代码200吗?或状态代码404.

谢谢!

rest web-services restlet

12
推荐指数
1
解决办法
7914
查看次数

设计RESTful URI

我正在创建RESTful API.我读

http://microformats.org/wiki/rest/urls

但是这个网站在设计我的API方面没有给我足够的"好"做法.具体来说,我将编写一个API(目前只有GET方法),它将提供转换地理坐标的功能.

示例:geohash是坐标的单值表示,因此/convert/geohash/u09tvkx0.json?outputformat=latlong

说得通.另一方面/convert/latlong.xml?lat=65&long=13&outputformat=UTC需要两个输入值.

看到我的"问题"?是什么让一个好的API需要多个输入参数?

(试图通过"分析"twitter和FF来"识别"良好做法,但失败了)

api rest get http

6
推荐指数
1
解决办法
1617
查看次数

RESTful子类型资源

一个最佳实践问题。如果要设计RESTful接口,将如何区分子类型。例如,您的应用程序具有动物(每个动物都由其animalId标识),它们具有狗和鸟的子类型,其中每个子类型都有其特定的子资源。例如,狗的尾巴长而鸟的翅膀长(无论如何)。您会选择哪种方法(或者您有更好的想法)?

1)
/animals/{animalId}/tail-length (400 when animal is bird)
/animals/{animalId}/wings-length (400 when animal is dog)

2)
/dogs/{animalId}/tail-length
/birds/{animalId}/wings-length

3)
/animals?type=dog/{animalId}/tail-length
/animals?type=bird/{animalId}/wings-length
Run Code Online (Sandbox Code Playgroud)

rest

5
推荐指数
1
解决办法
834
查看次数

标签 统计

rest ×5

api ×2

http ×2

web-services ×2

get ×1

restlet ×1