MySQL timestamp 设置时区的默认值怎么设置

使用cURL调试REST接口 - 推酷
使用cURL调试REST接口
最近在学习Restful API,今天看到一篇很好的文章,决定将其翻译出来,虽然是很久以前的文章,但感觉受益匪浅。
–译文开始–
在过去的几个月一直在做Restful网页应用,并使用cURL快速测试功能。
测试REST资源的基本命令
POST数据到REST资源
curl -i -H &Accept: application/json& -X POST -d &firstName=james& http://192.168.0.165/persons/person
参数如下:
i – 显示响应头
H – 向资源请求头部
X – 传递HTTP名称
d – 传入双引号中的参数,多个参数用’&’分割
名字(firstName)”james”到person资源。假设服务器使用名字James创建一个新的person,我们同时告诉服务器以json格式返回这个新创建的资源。
curl -i -H &Accept: application/json& -X PUT -d &phone=1-800-999-9999& http://192.168.0.165/persons/person/1curl -i -H &Accept: application/json& -X PUT -d &phone=1-800-999-9999& http://192.168.0.165/persons/person/1
一个电话号码到上面创建的person资源。
curl -i -H &Accept: application/json& http://192.168.0.165/persons/person/1
对于GET请求,-X参数为可选参数。(译者注:curl默认为GET模式请求数据,译者就会废话。)
curl -i -H &Accept: application/json& http://192.168.0.165/persons?zipcode=93031
你可以在url后边添加请求参数。
curl -i -H &Accept: application/json& &http://192.168.0.165/persons?firstName=james&lastName=wallis&
传入多个用&链接的参数时,资源uri需要加引号。如果参数值中带空格,需要转义,使用+或者%20代替空格。
DELETE资源
curl -i -H &Accept: application/json& -X DELETE http://192.168.0.165/persons/person/1
删除一条资源, -X参数支持DELETE选项
使用POST来PUT资源
curl -i -H &Accept: application/json& -H &X-HTTP-Method-Override: PUT& -X POST -d &phone=1-800-999-9999& http://192.168.0.165/persons/person/1
有些客户端不支持PUT或者发送PUT请求比较困难。出于这些原因,你可以将POST请求头中
X-HTTP-Method-Override
设置为PUT,告诉服务器端想要的是PUT请求。大多数服务器端(你也可以自己编码)支持X-HTTP-Method-Override,转换请求为期望的请求方法(X-HTTP-Method-Override的值)。本例
一个电话号码(通过POST)到标识为1的person资源。
使用POST来DELETE资源
curl -i -H &Accept: application/json& -H &X-HTTP-Method-Override: DELETE& -X POST http://192.168.0.3:8090/persons/person/1
和前一个命令非常相似,这个例子删除了标识为1的person资源,这里使用POST HTTP方法来告诉服务器重写为DELETE。
另一个不错的REST测试工具
如果你不想鸟cURL或者你用Widows系统(当然你可以安装Cygwin然后安装使用cURL)测试,这是一个不错的GUI工具。不过与Poster相比,使用cURL生产效率更高。
使用cURL来PUT/GET文件,看
–翻译完毕–
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致RESTful API 设计指南 - 阮一峰的网络日志
RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。
因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现的设计思想。是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇,探讨如何理解这个概念。
今天,我将介绍RESTful API的设计细节,探讨如何设计一套合理、好用的API。我的主要参考了两篇文章(,)。
API与用户的通信协议,总是使用。
应该尽量将API部署在专用域名之下。
如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。
https://example.org/api/
三、版本(Versioning)
应该将API的版本号放入URL。
另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。采用这种做法。
四、路径(Endpoint)
路径又称"终点"(endpoint),表示API的具体网址。
在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。
举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。
/v1/animals
/v1/employees
五、HTTP动词
对于资源的具体操作类型,由HTTP动词表示。
常用的HTTP动词有下面五个(括号里是对应的SQL命令)。
GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。
还有两个不常用的HTTP动词。
HEAD:获取资源的元数据。
OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。
下面是一些例子。
GET /zoos:列出所有动物园
POST /zoos:新建一个动物园
GET /zoos/ID:获取某个指定动物园的信息
PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
DELETE /zoos/ID:删除某个动物园
GET /zoos/ID/animals:列出某个指定动物园的所有动物
DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物
六、过滤信息(Filtering)
如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。
下面是一些常见的参数。
?limit=10:指定返回记录的数量
?offset=10:指定返回记录的开始位置。
?page=2&per_page=100:指定第几页,以及每页的记录数。
?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
?animal_type_id=1:指定筛选条件
参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?zoo_id=ID 的含义是相同的。
七、状态码(Status Codes)
服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)。
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
状态码的完全列表参见。
八、错误处理(Error handling)
如果状态码是4xx,就应该向用户返回出错信息。一般来说,返回的信息中将error作为键名,出错信息作为键值即可。
error: "Invalid API key"
九、返回结果
针对不同操作,服务器向用户返回的结果应该符合以下规范。
GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档
十、Hypermedia API
RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。
比如,当用户向的根目录发出请求,会得到这样一个文档。
{"link": {
"collection /zoos",
"title": "List of zoos",
"application/vnd.yourformat+json"
上面代码表示,文档中有一个link属性,用户读取这个属性就知道下一步该调用什么API了。rel表示这个API与当前网址的关系(collection关系,并给出该collection的网址),href表示API的路径,title表示API的标题,type表示返回类型。
Hypermedia API的设计被称为。Github的API就是这种设计,访问会得到一个所有可用API的网址列表。
"current_user_url": "/user",
"authorizations_url": "/authorizations",
从上面可以看到,如果想获取当前用户的信息,应该去访问,然后就得到了下面结果。
"message": "Requires authentication",
"documentation_url": "/v3"
上面代码表示,服务器给出了提示信息,以及文档的网址。
十一、其他
(1)API的身份认证应该使用框架。
(2)服务器返回的数据格式,应该尽量使用JSON,避免使用XML。
很多人说,不知道怎么写文档,都是凭着感觉写。
跨域脚本攻击 XSS 是最常见、危害最大的网页安全漏洞。
上一篇文章,我摘录了《程序员的呐喊》。这本书有趣的内容太多,今天再摘录一段。
最近,我在阅读 Steve Yegg 的文集《程序员的呐喊》。微课堂整理丨使用Robot Framework做接口测试_StuQ_传送门
你是真实用户吗(Are you a robot)?
我们怀疑你不是真实用户,已对你的访问做了限制。如果您是真实用户,非常抱歉我们的误判对您造成的影响,您可以通过QQ()或电子邮件()反馈给我们,并在邮件和QQ请求信息里注明您的IP地址:220.177.198.53,我们会尽快恢复您的正常访问权限。另外,如果您不是在访问的当前页面,我们建议您移步
或者 在浏览器中输入以下地址:http://chuansong.me/n/1858477 访问,您所访问的网站是从抓取的数据,请直接访问,会有更好的体验和更及时的更新。We suspect you are a robot.We are really sorry if you are not,and you can email us () with your current IP address: 220.177.198.53 to get full access to .If you are not accessing
for the current page,you'd better visit
for better performance,as the current website you are accessing is just spam.
觉得不错,分享给更多人看到
StuQ 微信二维码
分享这篇文章
11月6日 15:38
StuQ 最新头条文章
StuQ 热门头条文章

我要回帖

更多关于 timestamp的默认值 的文章

 

随机推荐