restful规范

Posted 高~雅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了restful规范相关的知识,希望对你有一定的参考价值。

咱们先来谈谈什么是接口?

我们常说的一个接口其实就是一个URL。

在java和c#中,接口也是一种约束。

# 约束继承(实现)了他的类中必须含有IFoo中的方法
				interface IFoo:
					def func(self): pass


				class Foo(IFoo):
					def func(self):
						print(11111)

在python中不会有这种情况,咱们只做简单的了解。  

主要来看看restful规范有哪些?

restful规范

1、根据method不同,进行不同操作

技术分享图片

2、面向资源编程

url结尾建议是名词。

技术分享图片

3、体现版本

情况一:

技术分享图片

情况二:

技术分享图片

为了防止出现跨域情况,建议用情况一。

4、体现是API

技术分享图片

5. https

技术分享图片

为了安全,我们建议用https,但是要破费了。

6. 响应式设置状态码

 我们常用的状态码:

  • 200

    • 请求成功
  • 300

    • 301

      • 永久重定向
    • 302

      • 临时重定向
  • 400

    • 403

      • 中间件问题
    • 404

      • 找不到页面
  • 500

    • 代码出错

 这是浏览器为我们响应式提供的通用状态码,但并不是一成不变的。我们也可以自定义返回状态码。

return HttpResponse(‘abcdefg‘,status=300)

7. 条件

一般情况我们需要筛选才能得到我们想要的数据,那么就要在url中添加相应的条件。

技术分享图片

8. 返回值

https://www.luffycity.com/api/v2/salary
			GET: 所有列表
			{
				code: 10000,
				data: [
					{‘id‘:1,‘title‘:‘高亮‘},
					{‘id‘:1,‘title‘:‘龙泰‘},
					{‘id‘:1,‘title‘:‘小东北‘},
				]
			}

			POST: 返回新增的数据
				{‘id‘:1,‘title‘:‘高亮‘}

			https://www.luffycity.com/api/v2/salary/1/
			GET: 获取单条数据
					{‘id‘:1,‘title‘:‘高亮‘}
			PUT:更新
					{‘id‘:1,‘title‘:‘高亮‘}
			PATCH: 局部更新
					{‘id‘:1,‘title‘:‘高亮‘}
			DELETE:删除

9. 返回错误信息

{
	code: 100001,
	error: ‘xxx错误‘
}

10、Hypermedia API

 技术分享图片

为了方便,我们会看情况在里面新添加一条url。

 

总结:

看完了restful规范,我们配置接口时,必须要按照规范来吗?也不一定,还是要看需求。这只是一种规范,只是建议大家按照规范来使用而已。

restful与Django无关,与rest-framework无关,它只是一种规范。

 

  

  

 

以上是关于restful规范的主要内容,如果未能解决你的问题,请参考以下文章

Spring Rest 文档。片段生成时 UTF-8 中间字节无效 [重复]

RestFul架构

restful接口设计规范总结

restful 架构风格的curd(增删改查)

Django REST框架--认证和权限

REST接口规范