当前位置: 首页 > news >正文

我的API定义规范(未完待续,欢迎指正)

项目用途:

API是提供接口服务的,应该为不同的用途设置一个名称。如用于gis展示的api,可以定义为gisapi

版本号:

api开发后,难免会进行修改完善,为避免互相影响,最好加个版本号区分。

    以我经常使用codeIgniter框架提供api为例,在CI实现的时候,将用途与版本号,组合成一项,就是控制器名,这个控制类单独有一个代码文件,也是控制器的代码文件名,如gisapi2,表示用于gisapi的版本2,如果不加数字,则表示这个控制器只有默认版本。项目或版本变更时,就应该用不同的代码文件来提供,避免调试部署时影响其它用户。

表示动作:

    list列表

    get取值

    add创建

    update更新

    delete删除

表示对象:

    如position表示点位,user表示用户

    动作与对象组合成一项,用驼峰形式,考虑到将同一类对象的方法可以排序放在一块,所有对象在前,动作在后的组合方式,如userAdd,userUpdate,positionList,在CI里,这一项对应的就是"方法函数"

参数:

        数据参数:

        查询时的查询条件,创建和更新时提供的值,删除时要提供的id等。创建和更新时,参数的名称和参数的值,就表示了要设置的字段的值。

        查询参数

       但查询参数的问题是,除了“=”情况外,其中最好能能有其他表达式,如是“模糊等于”,“大于小于”等等。如:

name3参数:表示name字段中包含某个值,这个3表示运算符“包含”的意思,即sql查询中like %...%

name8=1234:name包含"1234"的记录

region_code9=1234:region_code以“1234”打头的记录

region_code6=1234:region_code以“1234”结尾的记录

返回结果参数

    需要一批固定的保留词

    分页查询参数

    page:页

    limit:取多少条记录

一种是不分层参数

一种是分层参数,用json来传递

HTTP方法,按实际情况取GET/PUT/POST等

key_index=1:如果指定,则输出的json带有key

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 关于缓存的一些心得
  • unity对象缓存技术ObjectPool
  • 【算法】KMP算法
  • 硬盘分区读不出来:原因深度剖析与高效恢复实践
  • 通用分页处理:从繁琐到简洁的转变
  • PYTHON专题-(7)python都有包了?
  • 【王道数据结构-第二章-线性表算法题】
  • 50etf期权行权采用什么交割方式 ?
  • Python爬虫与MySQL完美结合:从环境搭建到实战优化
  • Linux——文件(1)
  • SQL注入实例(sqli-labs/less-9)
  • Ubuntu22.04安装Docker教程
  • 微信开放平台更换服务器证书通知
  • Tomcat 漏洞
  • 基于飞腾E2000的科东软件Intewell工业实时操作系统方案
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • gcc介绍及安装
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript学习总结——原型
  • Java精华积累:初学者都应该搞懂的问题
  • SpingCloudBus整合RabbitMQ
  • Spring-boot 启动时碰到的错误
  • Sublime text 3 3103 注册码
  • TCP拥塞控制
  • Twitter赢在开放,三年创造奇迹
  • 阿里研究院入选中国企业智库系统影响力榜
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 机器学习 vs. 深度学习
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何学习JavaEE,项目又该如何做?
  • 入手阿里云新服务器的部署NODE
  • 什么是Javascript函数节流?
  • 听说你叫Java(二)–Servlet请求
  • 微服务框架lagom
  • 为什么要用IPython/Jupyter?
  • Spring Batch JSON 支持
  • ​​​​​​​​​​​​​​Γ函数
  • ​马来语翻译中文去哪比较好?
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #FPGA(基础知识)
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (2)(2.10) LTM telemetry
  • (AngularJS)Angular 控制器之间通信初探
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (十六)视图变换 正交投影 透视投影
  • (四)库存超卖案例实战——优化redis分布式锁
  • (四)事件系统
  • (自用)网络编程
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .Net 6.0 处理跨域的方式
  • .net core Redis 使用有序集合实现延迟队列
  • .Net Core缓存组件(MemoryCache)源码解析