API中URL规划建议

来源:互联网 发布:以太网无法连接到网络 编辑:程序博客网 时间:2024/05/29 19:46
前言: 一个好的api在很大程度上会在api 中url的命令去体现,因为api的初衷就是让使用者容易接受,简单易懂,快速知道这个api中的URL代表是有什么用途。
由于之前的项目经验,一直使用openstack和阿里云的一些api。所以在API中的url规划,有那么一点点的认识。现在分享一下一些个人的想法吧。

openstack:遵循了开源界中的api命名规则,请求的方式有常用的http请求(GET,POST,PUT,DELETE),不同的请求代表着不同的操作。

阿里云:大部分的请求方式为POST,在其api的意义会表现在url 上(例如:CreateDisk,代表创建磁盘)

下面我们详细说一下具体openstack API的url是如何进行规划的。

在这里,我就举个例子,

servers: 返回所有server的信息(一些重要的字段)
servers/detail: 返回所有server的所有信息(所有字段)
servers/{server_id}: 返回一个server的信息(一些重要字段)
servers/{server_id}/detail: 返回一个server的所有信息(所有字段)
servers/{server_id}/ips: 列出了server中所有ip的信息(相当如表关联查询)
servers/{server_id}/ips/{network_id}: 列出了server中某个ip的信息(相当如表关联查询)

以上所有API的url都会有四种请求方式(GET,POST,PUT,DELETE)来代表获取,新建,更新,删除等操作,所有的结果返回都会为这样的模式,
{"code":200,"servers":[{server1_info}, {server2_info}], "message":"thist ok"}。

其中GET请求会有一些过滤条件,来方便用户获得更加精准的数据。
例如:
servers?servers_name=server_test_01 :这样表示过滤获得server_name为server_test_01的server。多个条件之间使用&隔开servers?servers_name=server_test_01&ip=‘192.168.1.1’

在API的规划中,我们可以根据这样的思路逻辑来设计自己的api,这样会是用户更加清楚自己api的意义。

原创粉丝点击