项目用途(useful):
API是提供接口服务的,应该为不同的项目用途设置一个名称,这样便于管理。如用于gis展示的api,可以定义为gisapi
版本号(version):
api开发后,难免会进行修改完善,为避免互相影响,最好加个版本号区分。
以我经常使用codeIgniter框架提供api来实现时,最好是用目录来组织控制器,这个目录名用于表示不同的项目和版本号。若不想使用目录,则在CI实现的时候,须将用途与版本号,组合成一项,就是控制器名,这个控制类单独有一个代码文件,也是控制器的代码文件名,如gisapi2,表示用于gisapi的版本2,如果不加数字,则表示这个控制器只有默认版本。项目或版本变更时,就应该用不同的代码文件来提供,避免调试部署时影响其它用户。
表示动作(action):
list列表
get取值
add创建
update更新
delete删除
表示对象(object):
如position表示点位,user表示用户
动作与对象组合成一项,用驼峰形式,考虑到将同一类对象的方法可以排序放在一块,所有对象在前,动作在后的组合方式,如userAdd,userUpdate,positionList,在CI里,这一项对应的就是"方法函数"
参数(parms):
为了使一个接口通用,需要使用可变灵活的参数,那么使用json参数
数据参数:
查询时的查询条件,创建和更新时提供的值,删除时要提供的id等。创建和更新时,参数的名称和参数的值,就表示了要设置的字段的值。
复杂查询参数
但查询参数的问题是,除了“=”情况外,其中最好能能有其他表达式,如是“模糊等于”,“大于小于”等等。
实现方案一,约定在参数名后加数字来表示运算符
如:name3参数:表示name字段中包含某个值,这个3表示运算符“包含”的意思,即sql查询中like %...%
name8=1234:name包含"1234"的记录
region_code9=1234:region_code以“1234”打头的记录
region_code6=1234:region_code以“1234”结尾的记录
实现方案二,约定在参数名加$后表示不同运算符
在javascript中,变量名区分大小写,允许包含字母、数字、美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号。所以,我们可以约定用$符号来区分变量名和表达式。
name$like:包含...
name$left:以....开头
name$right:以...结尾
age$lt:年龄小于
返回结果参数
需要一批固定的保留词
分页查询参数
page:页
limit:取多少条记录
一种是不分层参数
一种是分层参数,用json来传递
HTTP方法,按实际情况取GET/PUT/POST等
key_index=1:如果指定,则输出的json带有key
14万+

被折叠的 条评论
为什么被折叠?



