0
点赞
收藏
分享

微信扫一扫

RESTful设计方法

琛彤麻麻 2022-02-19 阅读 80

1、域名

应尽量将API部署在专用的域名下

http://api.example.com

2、版本

应该将API的版本号放入URL

http://www.example.com/app/1.0/foo

http://www.example.com/app/2.0/foo

3、路径

表示API的具体网址,每个网址代表一种资源,如果要操作什么资源,什么资源就作为路径

(1)资源作为网址,只能有名词(books),不能用动词(add_book)

(2)资源的名词,需要用复数,无论是子资源还是所有资源

例如

获取单个产品: http://127.0.0.1:8080/AppName/rest/products/1

获取所有产品: http://127.0.0.1:8080/AppName/rest/products

例如

GET: /products 返回所有商品清单

POST: /products 将产品新建到一个集合

4、HTTP动词

常用的HTTP动词有一下四个

GET(SELECT):从服务器取出资源

POST(CREATE):在服务器新建一个资源

PUT(UPDATE):在服务器更新资源

DELETE(DELETE):从服务器删除资源

例如:

GET: /zoo :列出所有动物园

POST: /zoos : 新建一个动物园

GET: /zoos/ID: 获取某个指定动物园的信息

PUT /zoos/ID :更新某某个指定动物园的信息,

DELETE /zoos/ID :删除某个动物园

5、过滤信息

记录数量过多的时候,API应该提供参数,过滤返回结果

例如:

?limit=10 指定返回记录的数量

?offset=10 指定返回记录的开始位置

?page=2&per_page=100 指定第几页,以及每页的记录数

6、状态码

200 服务器成功返回

400 用户发出的请求有误,服务器没有进行新建

401 用户没有权限(令牌、用户名、密码)

403 表示用户得到授权,但是访问被禁止

406 用户请求格式不对

7、错误处理

如果状态码是4xx,服务器就应该向用户返回出错信息,一般来说,返回的信息中将error作为键名,出错信息作为键值即可

8、返回结果

针对不同的操作,服务器向用户返回的结果应符合以下规范

GET, /collection 返回资源对象的列表

GET,/collection/resource 返回单个资源对象

POST ,/collection 返回新生成的资源对象

PUT ,/collection/resource 返回完整的资源对象

DELETE /collection/resource 返回一个空文档

写一个RESTFul风格的接口,获取一个,图书的详情

http://127.0.0.1:8000/projects/books/5/

注册路由


from django.urls import path
from django.conf.urls import url
from testdjango import views

urlpatterns = [
    path('index', views.IndexView.as_view()),
    url(r'^books/(?P<pk>\d+)/$', views.BookView.as_view()),
]
class BookView(View):
    def get(self, request, pk):
        return JsonResponse({'title': 'test'})
举报

相关推荐

0 条评论