只知道遵规循矩的程序员是假程序员,任何技术都是不断发明创造改进的。

  如何设计处优秀的Restful API?  盲目跟风,设计糟糕的Resful API = 浪费时间 !

  不啰嗦,直接进入技术主题:

  1、REST API里面的术语

    Resource (资源) :就是数据,是对象,或者说物质

    operation(操作):这个概念是我个人抽出来的,很多人学Restful是没有这个概念,大家只知道资源,我个人认为有资源就有对资源的操作,例如http的方法 : GET、POST、DELETE、PUT

    Collections(集合):就是一组资源

    URL(统一资源定位符):就是资源定位符,因为是通用,所以叫统一资源定位符。说白了可以理解为网址,就是资源的位置,比如一个图片地址、一个文件的地址、一部电影的地址

  2、URL设计使用合适的词语(名词或者动词)

    名词:对资源的表达、形容

    动词:对资源的操作,其中基本的操作方法Http方法 (GET、POST、DELETE、PUT)已经包含,所以URL的动词 很少 ,能抽象出http的方法就尽量,不能抽象则在URL中表达(可参照关于restful开发的疑惑

    全部用小写

   3、使用JSON作为通信格式

    JSON的特性在此不详细说明

  4、响应状态

    一个状态码和一个消息就够了

    状态码使用HTTP状态码,消息根据业务或者系统情况给合适的消息,不需再设计个什么 success 字段 为true 或 false,有状态码了这是多此一举。
    

/**
* 统一码
*
* @author 尘无尘
*
*/
public interface UnifiedCode { /**
* 成功
*/
static final int SUCCESS = 200; /**
* 参数错误,虽然请求成功,但是请求参数错误 导致 无法调用接口或者无法正常执行接口
*/
static final int PARAM_ERROR = 400; /**
* 系统错误,虽然请求成功,但是由于系统内部问题导致无法正常处理请求
*/
static final int SYS_ERROR = 500;
}

 

    

   

关于restful开发的疑惑

如何设计处优秀的Restful API的更多相关文章

  1. 如何设计出优秀的Restful API?

    https://mp.weixin.qq.com/s?__biz=MzU0OTE4MzYzMw==&mid=2247485240&idx=1&sn=b5b9c8c41659d2 ...

  2. 优秀的Restful API应该是什么样的

    1 你一直在错误的使用http协议 现在微服务真是火的一塌糊涂!大街小巷,逢人必谈微服务,各路大神纷纷忙着把自家的单体服务拆解成多个Web微小服务!而作为微服务之间通信的桥梁,Web API的设计就显 ...

  3. 设计糟糕的 RESTful API 就是在浪费时间!

    现在微服务真是火的一塌糊涂.大街小巷,逢人必谈微服务,各路大神纷纷忙着把自家的单体服务拆解成多个Web微小服务.而作为微服务之间通信的桥梁,Web API的设计就显得非常重要. HTTP是目前互联网使 ...

  4. 通过一组RESTful API暴露CQRS系统功能

    命令和查询责任分离(CQRS)是由Greg Young提出的一种将系统的读(查询).写(命令)操作分离为两种独立子系统的架构模式.命令通常是异步执行的,并存储在一个事务型数据库中,而读操作则通常是最终 ...

  5. Node.js RESTful API

    什么是REST架构? REST表示代表性状态传输.REST是一种基于Web标准的架构,并使用HTTP协议. 它都是围绕着资源,其中每一个组件是资源和一个资源是由一个共同的接口使用HTTP的标准方法获得 ...

  6. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API

    写在前面的话 看了一下博客目录,距离上次更新这个系列的博文已经有两个多月,并不是因为不想继续写博客,由于中间这段时间更新了几篇其他系列的文章就暂时停止了,如今已经讲述的差不多,也就继续抽时间更新< ...

  7. RESTful API 编写指南

    基于一些不错的RESTful开发组件,可以快速的开发出不错的RESTful API,但如果不了解开发规范的.健壮的RESTful API的基本面,即便优秀的RESTful开发组件摆在面前,也无法很好的 ...

  8. Spring Boot+Spring Security+JWT 实现 RESTful Api 权限控制

    摘要:用spring-boot开发RESTful API非常的方便,在生产环境中,对发布的API增加授权保护是非常必要的.现在我们来看如何利用JWT技术为API增加授权保护,保证只有获得授权的用户才能 ...

  9. REST与RESTFul API最佳实践

    我经常会面试一些做PHP的开发者,让我很奇怪的是,10个人总有8个多不知道什么是REST服务,甚至是没有听说过.但RESTFul API已经是现在互联网里对外开放接口的主流模式,可参考: 豆瓣API  ...

随机推荐

  1. ArcGIS农村土地承包经营权辅助建库软件说明书

    软件作者:闫磊  电话:18987281928 或13108507190 QQ:853740877,QQ交流群:236352926 1.    软件安装... 4 2.           系统整体界 ...

  2. Linux(Ubuntu16.04)下添加新用户

    某些情况下,Ubuntu 使用useradd 新用户名,在home 文件夹下面看不到新创建的用户文件夹,例如: 发现找不到,spark的文件夹,因此将采用下面方式重新建立首先删除spark用户 若想给 ...

  3. 【html/css】若母div设置了透明度,如何才能使得里面的子div不继承母div的透明度

    用rgba的方式给母div设置透明度的话就不会影响子div的透明度了. 例: background: rgba(51, 51, 51, 0.5);

  4. EF Migrations

    Enable-Migrations -EnableAutomaticMigrations dbcontent Add-Migration XXXXX Update-Database -Verbose ...

  5. 最好的原型和流程图绘制工具:OmniGraffle_交互设计

    原文地址:http://www.shangxueba.com/jingyan/2230668.html 使用哪种原型设计工具"大概是设计师闲聊时出现频率最高的话题之一.据我了解一般以Visi ...

  6. SqlServer 批量添加记录

    declare @i int ) begin INSERT INTO [dbo].[Settlements] ([ID] ,[Count] ,[SettlementDate]) VALUES ( ne ...

  7. SSM框架——实现分页和搜索分页

    登录|注册     在路上 在路上,要懂得积累:在路上,要学会放下:我在路上!Stay hungry,Stay foolish.       目录视图 摘要视图 订阅 [公告]博客系统优化升级     ...

  8. cocos2dx加载骨骼动画,获取骨骼位置

    2015/05/13 需求: (1)希望在骨骼上绑定一个粒子特效 (2)获取骨骼的位置 (3)获取骨骼动画的大小 (4)lua 1. cocostudio动画编辑器 (1)绑定粒子特效(跟随骨骼的移动 ...

  9. 关于cocostudio动态添加控件触摸响应无效的学习

    time:2015/04/19 1. 描述 * 把studio制作的ui加载之后,动态添加事件(比如说,单点触摸),结果回调函数(eg:onTouchBegan等)根本没有响应! * 另外,网上有朋友 ...

  10. 单例模式中的volatile关键字

    在之前学习了单例模式在多线程下的设计,疑惑为何要加volatile关键字.加与不加有什么区别呢?这里我们就来研究一下.单例模式的设计可以参考个人总结的这篇文章   背景:在早期的JVM中,synchr ...