如何理解rest和restful,什么是restfulAPI?

如何理解rest和restful,什么是restfulAPI?,第1张

简单理解一
就是用URL定位资源,用>是的,REST API支持双向通信,这意味着客户端服务器可以相互发送和接收数据。双向通信的优势在于,客户端可以轻松获取服务器端的数据,而服务器还可以更新已下发到客户端的数据,这样一来,客户端就可以获得最新的数据,而无需发起新的请求。

这个问得比较大,REST是一个Web应用程序框架。ArcGIS REST API提供了简单、开放的接口来访问和使用ArcGIS Server发布的服务。使用ArcGIS REST API通过URL,可以获取和 *** 作每一个服务中的所有资源和 *** 作。使用REST API就是通过URL来向GIS服务器获取资源的 *** 作。
一般客户端从服务器端总是能得到一个资源的表现,在此一般分为两种类型的资源:
Resources(资源,直接反应了服务本身的信息)
Operations( *** 作,根据服务本身的资源进行某些处理后得到的结果)
Catalog是整个REST APIURL分层等级的根。根下面是这个Server所发布的服务,一共有8种类型的服务:Map Service、Geocode Service、GP Service、Geometry Service、Image Service、Network Service、GeoData Service和Globe Service。每一种Service下面都有不同的 *** 作和资源,而执行这些 *** 作和获取这些资源都是通过URL。
再具体的建议参考《ArcGIS Server REST API Help》。

2xx
200 OK
所有人都知道 200 OK 是什么。这估计是最经常被滥用的状态码。很多人在应该使用其它 2xx 状态码时都选用了 200 OK 来表示。
201 Created
如果你在设计一个 REST API,或者一个 CRUD API,当你使用 POST(或者 PUT)成功创建一个新的资源后,服务器应该返回 201 Created 同时在 header 的 Location 字段给出刚刚创建好的这个资源的 URI。
例如说,如果你使用 POST 请求通过 \comments URI 创建了一个新的评论,那么服务器应该返回 201 Created,同时带上形如Location: \comments\1234 的字段表明新创建的评论的 URI。
202 Accepted
如果服务器在接受请求后,需要进行一个异步处理才能有结果,并且觉得不需要让 TCP 连接保持到结果出来再返回,它可以返回 202 Accepted,意思是请求已接受,但没有立即可返回的结果。
204 No Content
在一个 REST API 或者 CRUD API 里面,当你使用 PUT 成功更新一个资源后,如果服务器完整接受了客户端的更新,没有拒绝也没有额外更新,那实际上是不需要返回任何东西的,因为现在客户端和服务器端已经拥有完全一致的状态。在这种情况下,服务器可以返回 204 No Content,同时 body 为空,客户端就知道它的状态已经跟服务器端同步了。
206 Partial Content
断点续传和多线程下载都是通过 206 Partial Content 实现的。
请求的 header 必须包含一个 Range 字段,表明自己请求第几个字节到第几个字节的内容。如果服务器支持的话,就返回 206 Partial Content,然后使用 header 的 Content-Range 指明范围,并在 body 内提供这个范围内的数据。
3xx
301 Moved Permanently
永久性重定向。目标由 header 的 Location 字段给出,同时 body 中也应该有指向目标的链接。新请求使用的方法应该和原请求的一致。如果用户使用 HEAD 和 GET 以外的方式发起原请求,客户端在遇到 301 Moved Permanently 后应当询问用户是否对新的 URI 发起新请求。
302 Found
临时性重定向。
这应该是浏览器实现最不符合标准的一个状态码了。理论上,除了临时性这一点,302 Found 跟 301 Moved Permanently 应该是完全一样的。然而实质上,很多浏览器在遇到 302 Found 后就会使用 GET 去请求新的 URI,而无论原请求使用的是何种方法。由于这种现象的普遍存在,使得这成为了一个与书面标准相违背的事实标准,新的客户端在实现时很难选择应该遵守哪一个标准,所以 RFC 2616 专门新增了 303 See Other 和 307 Temporary Redirect 两个状态码来消除二义性。
303 See Other
临时性重定向,且总是使用 GET 请求新的 URI。
304 Not Modified
如果客户端发起了一个「条件 GET」,同时资源确实没被修改过,那么服务器端就应该返回 304 Not Modified,同时 body 不包含任何内容。
所谓的「条件 GET」,是指 GET 的 header 带上了 If-Modified-Since 或 If-None-Match 字段。这两个 header 就是「条件」,如果条件符合了 GET 就应该正常执行,否则就应该返回 304 Not Modified,以便告诉客户端它想要请求的资源在上一次请求之后没有被更新过,客户端可以继续使用之前的版本。
307 Temporary Redirect
临时性重定向,且总是使用原请求的方法来进行新请求。
4xx
400 Bad Request
服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
401 Unauthorized
请求未授权。如果请求 header 没有 Authorization 字段,服务器端应该在返回 401 Unauthorized 的同时在 header 中用 >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12703138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存