码迷,mamicode.com
首页 > Windows程序 > 详细

RESTful-API

时间:2016-04-29 23:47:41      阅读:458      评论:0      收藏:0      [点我收藏+]

标签:


作用

对于同一资源定位(URI),根据method不同,对资源进行不同的操作。


状态码

服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)。

  • 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。

  • 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。

  • 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)

  • 204 NO CONTENT - [DELETE]:用户删除数据成功。

  • 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。

  • 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。

  • 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。

  • 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。

  • 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。

  • 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。

  • 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

  • 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。


django_rest_framework

通过各种method获取或修改后台数据,直接显示在前端,可以是json等其它格式,替代了以前的ajax去后端获取数据只能返回json,还要写model等步骤。?

http://www.django-rest-framework.org/tutorial/quickstart/

安装(具体版本请参考 Django-rest-framework.org)

1
2
3
pip install djangorestframework
pip install markdown
pip install django-filter

添加项目

1
2
3
4
INSTALLED_APPS = [
    .......
    ‘rest_framework‘,
]

serializer.py

1
2
3
4
5
6
from rest_framework import serializers
from models import UserProfile
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = UserProfile
        fields = (‘url‘, ‘name‘, ‘email‘)

rest_views.py

1
2
3
4
5
6
7
from rest_framework import viewsets
from models import UserProfile
from serializer import UserSerializer
 
class UserViewSet(viewsets.ModelViewSet):
    queryset = UserProfile.objects.all()
    serializer_class = UserSerializer

总urls.py,把api的全交给rest_urls.py处理

1
2
3
4
5
6
7
from django.conf.urls import include
from asset import rest_urls
 
urlpatterns = [
    ......
    url(r‘^api/‘, include(rest_urls) ),
]

rest_urls.py

1
2
3
4
5
6
7
8
9
10
from django.conf.urls import url, include
from rest_framework import routers
import rest_views
 
router = routers.DefaultRouter()
router.register(r‘users‘, rest_views.UserViewSet)
urlpatterns = [
    url(r‘^‘, include(router.urls)),
    url(r‘^api-auth/‘, include(‘rest_framework.urls‘, namespace=‘rest_framework‘))
]

效果

技术分享




















RESTful-API

标签:

原文地址:http://www.cnblogs.com/daliangtou/p/5447831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!