restful介面規範

2021-10-02 18:18:27 字數 3254 閱讀 1684

聯絡兩個物質的媒介,完成資訊互動

web程式中:聯絡前台頁面與後台資料庫的媒介

web介面組成:

請求引數:前台按照指定的key提供資料給後台

響應資料:後台與資料庫互動後將資料反饋給前台(狀態碼,狀態資訊,響應資料)

web資料請求介面設計規範共10條,可以分為url與響應兩部分

url

響應部分

from django.conf.urls import url,include

from django.contrib import admin

​urlpatterns = [

url(r'^admin/', admin.site.urls),

# 路由分發

url(r'^api/',include('api.urls')),

]

from django.conf.urls import url

​from . import views

urlpatterns = [

# get查所有,post新增資料

url(r'^books/$', views.book.as_view()),

# 查乙個,刪乙個,更新(整體,區域性)乙個

url(r'^books/(?p.*)/', views.book.as_view())

]

from django.db import models

​# create your models here.

class book(models.model):

title = models.charfield(max_length=64)

price = models.decimalfield(max_digits=5, decimal_places=2)

​ class meta:

# 表名

db_table = 'red_book'

verbose_name = '書籍'

# view 原始碼中判斷wsgiref處理好的request中的請求方式,是get,還是post等,並自動掉對應的函式方法(通過排程(dispatch)分發請求)

def get(self, request, *args, **kwargs):

# grt請求時,url後拼接的資料放到了request.get中

print(request.get)

print(kwargs) # 有名分組的資料被放到kwargs中

pk = kwargs.get('pk')

if not pk: # 群查

book_obj_list = models.book.objects.all()

# 資料資訊列表

book_list =

for obj in book_obj_list:

dic = {}

dic['title'] = obj.title

dic['price'] = obj.price

# 響應資料(遵循介面規範:響應狀態碼, 提示資訊, 操作結果)

return jsonresponse(, json_dumps_params=)

else: # 單查

book_dic = models.book.objects.filter(pk=pk).values('title', 'price').first()

print(book_dic,type(book_dic))

if book_dic:

return jsonresponse(, json_dumps_params=)

return jsonresponse(, json_dumps_params=)

​ def post(self, request, *args, **kwargs):

print(request.post)

# print(request.post.dict())

# print(request.body)

print(request.files)

# post請求時的content-type有三種:urlencoded,json,formdata

# urlencoded:將request.body中的二進位制資料處理放到對應的request.get或request.post中

# json:資料以二進位制形式存放在request.body中不進行處理

try:

book_obj = models.book.objects.create(**request.post.dict())

print(book_obj, type(book_obj))

if book_obj:

return jsonresponse(

}, json_dumps_params=)

except:

return jsonresponse(, json_dumps_params=)

​ return jsonresponse(, json_dumps_params=)

補充:# postman可以完成不同方式的請求:get | post | put ...

# postman傳送資料報有三種方式:form-data | urlencoding | json

# 原生django對urlencoding方式資料相容最好

restful介面規範

資源 resource 任何東西都是一種資源,例如,一篇部落格文章 表示 representation 資源的一種表現形式,例如,json xml url 每個資源都應該有乙個對應的url uri url是uri的一種,url都有對應的資源,而uri不一定,它強調的是一種資源標識 get 獲得乙個資...

Restful介面規範

2000年roy fielding博士在其博士 中提出rest representational state transfer 風格的軟體架構模式後,rest就基本上迅速取代了複雜而笨重的soap,成為web api的標準了。restful作為目前最流行的 api 設計規範,一定有著它獨有的魅力 強...

Restful介面規範

rest,即resources representational state transfer 資源表現層狀態轉化 資源 resources 網路上的乙個實體,每種資源對應乙個特定的uri 統一資源識別符號 表現層 representational 資源呈現的形式,比如 json 狀態轉化 stat...