久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

restapi的設計細節和實施是什么樣的

201次閱讀
沒有評論

共計 3223 個字符,預計需要花費 9 分鐘才能閱讀完成。

今天就跟大家聊聊有關 restapi 的設計細節和實施是什么樣的,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

在 RESTful API 的設計中,我打算自定義一個請求頭,把 token 放進去以便向其他 sora 組件請求服務。

于是,把之前的代碼稍微改成這樣:

parser.add_argument(auth-token ,type=str,help= put the token here ,location= headers)

引用該值時,用法如下:

class TodoSimple(Resource):
 def get(self,todo_id):
 args = parser.parse_args()
 if args[auth-token] ==  thisismytoken :
 return {todo_id:todos[todo_id]}
 else:
 return {error : token error},401
 def put(self,todo_id):
 todos[todo_id] = request.form[data]
 return {todo_id:todos[todo_id]}

直接

args = parser.parse_args()

然后讀取其中的值即可。

另外,之前的測試我只是簡單地用 - d 指定“name=hochikong”操作 getname 資源,現在把它稍微改下。

class GetName(Resource):
 def post(self):
 args = parser.parse_args()
 name = args[name]
 #name = {}
 #name[ac] = args[name]
 #name = request.json.get(name)
 return {yourame :name}

但是 curl 的請求則變成這樣:

curl -i -X POST -H  Content-Type:application/json  -d {name : hochikong} http://localhost:5000/getname

注意!:我發送的是 JSON 數據,所以要修改 http head 為 application/json,另外:

{name : hochikong}

JSON 數據中的字符串要用雙引號,否則會報錯。而 JSON 數據外還需要套一個引號

我的完整代碼:

__author__ =  hochikong 
from flask import Flask,request
from flask.ext.restful import Resource,Api,reqparse
app = Flask(__name__)
api = Api(app)
todos = {task : get the list of docker}
parser = reqparse.RequestParser()
parser.add_argument(name ,type=str,help= get the name) # 因為這句話“By default, the RequestParser tries to parse values from flask.Request.values, and flask.Request.json.”, # 我們不需要在 name 這個參數后加‘location=json’,不過加了也無妨
parser.add_argument(auth-token ,type=str,help= put the token here ,location= headers)

 args = parser.parse_args()  if args[auth-token] ==  thisismytoken :  return {todo_id:todos[todo_id]}  else:  return {error : token error},401  def put(self,todo_id):  todos[todo_id] = request.form[data]  return {todo_id:todos[todo_id]} class GetName(Resource):  def post(self):  args = parser.parse_args()  name = args[name]  #name = {}  #name[ac] = args[name]  #name = request.json.get(name)  return {yourame :name} api.add_resource(TodoSimple, / string:todo_id) api.add_resource(GetName, /getname) if __name__ ==  __main__ :  app.run()

啟動:

python flaskrr.py

發送請求測試 getname 資源:

hochikong@hochikong-P41T-D3:~/PycharmProjects/untitled/sora_test$ curl -i -X POST -H  Content-Type:application/json  -d {name : hochikong} http://localhost:5000/getname
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 24
Server: Werkzeug/0.10.1 Python/2.7.6
Date: Sat, 11 Apr 2015 14:07:03 GMT
{yourame :  hochikong}
hochikong@hochikong-P41T-D3:~/PycharmProjects/untitled/sora_test$

發送請求測試自定義 head:

hochikong@hochikong-P41T-D3:~/PycharmProjects/untitled/sora_test$ curl -X GET -H  auth-token:thisismytoken  http://localhost:5000/task
{task :  get the list of docker}
hochikong@hochikong-P41T-D3:~/PycharmProjects/untitled/sora_test$

如果 token 不對:

hochikong@hochikong-P41T-D3:~/PycharmProjects/untitled/sora_test$ curl -X GET -H  auth-token:thisisyourtoken  http://localhost:5000/task
{error :  token error}
hochikong@hochikong-P41T-D3:~/PycharmProjects/untitled/sora_test$

測試成功。

不過設計 RESTful API 最辛苦的還是設計 JSON 請求格式,各種功能各種格式,我也是醉了

補充:

外部可見的服務器。
運行服務器后,會發現只有你自己的電腦可以使用服務,而網絡中的其他電腦卻不行。缺省設置就是這樣的,因為在調試模式下該應用的用戶可以執行你電腦中的任意 Python 代碼。

如果你關閉了 調試 或信任你網絡中的用戶,那么可以讓服務器被公開訪問。只要像 這樣改變 run() 方法的調用:

app.run(host= 0.0.0.0)
這行代碼告訴你的操作系統監聽一個公開的 IP。

看完上述內容,你們對 restapi 的設計細節和實施是什么樣的有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計3223字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 吕梁市| 万荣县| 全南县| 法库县| 界首市| 海原县| 南溪县| 通榆县| 疏附县| 新安县| 乡城县| 乌兰察布市| 安丘市| 贡嘎县| 望城县| 遂宁市| 扎鲁特旗| 延长县| 三江| 满洲里市| 鄢陵县| 钟祥市| 罗江县| 砚山县| 吉隆县| 东兴市| 北碚区| 郸城县| 赤壁市| 德州市| 南汇区| 和顺县| 如东县| 东光县| 班玛县| 青河县| 太康县| 甘肃省| 南康市| 大新县| 闻喜县|