Open iliuyt opened 6 years ago
通过URI对资源进行定位,通过http的method来描述对资源的操作
api是什么?api就是接口,提供一个可以操作的窗口,方便别人操作。
restful api是什么?restful api就是基于restful的思想开发的api,重点在于restful是一种思想,服务于api,我们真正要做的是api, api的根本就是对于方便调用者,所以脱离了场景restful就是扯淡。 然后再说资源,不同的场景下对于资源的需求的表达是不同的,所以API的重点在于如何在当前场景下合适的表达资源,我们可以使用restful的思想使用uri + http.method 的方式来描述资源和操作资源,但是资源真正的描述不是restful应关系的 例如,GET http://127.0.0.1/user 用于获取用户信息,但是具体获取用户信息加班级信息还是只获取用户昵称,由api来决定,所以资源具体是指什么?restful的资源并不是指的具体实体,如数据库定义的user表,而是根据场景不同实体合适的表达方式 最终api是要服务于调用者,所以更多的还是要方便调用者。
错误处理、并发修改、部分修改、重试机制
1.1 极简 用尽量少的API表达出你的场景。
1.2 完备 完备的API是指期望有的功能都包含了。这点会和保持API极简有些冲突。
1.3 语义清晰简单 就像其他的设计一样,我们应该遵守最少意外原则(the principle of least surprise)。好的API应该可以让常见的事完成的更简单,并有可以完成不常见的事的可能性,但是却不会关注于那些不常见的事。解决的是具体问题;当没有需求时不要过度通用化解决方案。
1.4 符合直觉 就像计算机里的其他事物一样,API应该符合直觉。对于什么是符合直觉的什么不符合,不同经验和背景的人会有不同的看法。API符合直觉的测试方法:经验不很丰富的用户不用阅读API文档就能搞懂API,而且程序员不用了解API就能看明白使用API的代码。
1.5 易于记忆 为使API易于记忆,API的命名约定应该具有一致性和精确性。使用易于识别的模式和概念,并且避免用缩写。
1.6 引导API使用者写出可读代码 代码只写一次,却要多次的阅读(还有调试和修改)。写出可读性好的代码有时候要花费更多的时间,但对于产品的整个生命周期来说是节省了时间的。
部分内容来源知乎
restful 是什么
通过URI对资源进行定位,通过http的method来描述对资源的操作
api是什么
api是什么?api就是接口,提供一个可以操作的窗口,方便别人操作。
restful api
restful api是什么?restful api就是基于restful的思想开发的api,重点在于restful是一种思想,服务于api,我们真正要做的是api, api的根本就是对于方便调用者,所以脱离了场景restful就是扯淡。 然后再说资源,不同的场景下对于资源的需求的表达是不同的,所以API的重点在于如何在当前场景下合适的表达资源,我们可以使用restful的思想使用uri + http.method 的方式来描述资源和操作资源,但是资源真正的描述不是restful应关系的 例如,GET http://127.0.0.1/user 用于获取用户信息,但是具体获取用户信息加班级信息还是只获取用户昵称,由api来决定,所以资源具体是指什么?restful的资源并不是指的具体实体,如数据库定义的user表,而是根据场景不同实体合适的表达方式 最终api是要服务于调用者,所以更多的还是要方便调用者。
api需要考虑哪些东西 内容来源知乎
功能处理
错误处理、并发修改、部分修改、重试机制
描述处理
1.1 极简 用尽量少的API表达出你的场景。
1.2 完备 完备的API是指期望有的功能都包含了。这点会和保持API极简有些冲突。
1.3 语义清晰简单 就像其他的设计一样,我们应该遵守最少意外原则(the principle of least surprise)。好的API应该可以让常见的事完成的更简单,并有可以完成不常见的事的可能性,但是却不会关注于那些不常见的事。解决的是具体问题;当没有需求时不要过度通用化解决方案。
1.4 符合直觉 就像计算机里的其他事物一样,API应该符合直觉。对于什么是符合直觉的什么不符合,不同经验和背景的人会有不同的看法。API符合直觉的测试方法:经验不很丰富的用户不用阅读API文档就能搞懂API,而且程序员不用了解API就能看明白使用API的代码。
1.5 易于记忆 为使API易于记忆,API的命名约定应该具有一致性和精确性。使用易于识别的模式和概念,并且避免用缩写。
1.6 引导API使用者写出可读代码 代码只写一次,却要多次的阅读(还有调试和修改)。写出可读性好的代码有时候要花费更多的时间,但对于产品的整个生命周期来说是节省了时间的。
部分内容来源知乎