Что такое API спокойного?
Это определенно архитектурный стиль строительства API
, Отдых является основным архитектурным принципом Интернета. Удивительная вещь в Интернете – это тот факт, что клиенты (браузеры) и серверы могут взаимодействовать сложными способами, и клиент заранее не знает ничего о сервере и ресурсах, которые он размещает. Ключевое ограничение состоит в том, что сервер и клиент должны оба согласоваться с используемым носителем, который в случае Интернета является HTML.
RESTFUL API – также называемый веб -службой RESTFUL – основан на репрезентативном передаче состояний ОТДЫХАТЬ
Практический пример API – это когда Вы входите в ресторан с кем -то, вы хотите заказать продукт для себя и человека, у вас есть официант, который должен принять ваш запрос и готовить ответ на кухню и вернет вам его, официант действует как API
Официант выступает в качестве HTTP, а кухня является сетью, поэтому он отправляет запрос, а кухня отправляет его обратно, кухня возвращает вам ответ, используя HTTP -ответ.
Ваша стандартная база данных CRUD (создание, чтение, обновление, удаление) переводится на глаголы HTTP: post, get, plot, delete. После этого соглашения и передача правильных параметров в основном означает, что вы перевели часть бизнес -логики на HTTP. Это так просто.
– GET должен использоваться для запроса информации из веб-службы.
– Пост должен использоваться для размещения данных на веб-сервер, где нет спецификации относительно того, где веб-служба должна разместить данные. Это можно считать эквивалентом вставки.
– Путь следует использовать, когда вы хотите указать, куда пошли данные. Это идентификационное действие, так как повторяется, оно ничего не изменит при каждом повторном вызове. В качестве альтернативы это может рассматриваться как эквивалент обновления.
– и удаление, очевидно, должно использоваться для удаления некоторых данных или ресурса с веб-сервера.
Теперь давайте построим RESTFUL API, который поддерживает +,-,/,*
Метод: пост
Ресурсы:+,-,/,*
Диаграмма методов ресурсов
/добавлять | ПОЧТА | + | X: int, y: int | Добавление двух чисел | 200: ОК, 300: отсутствует |
/вычтите | ПОЧТА | – | x: int, y: int | Вычитание двух чисел | 200: ОК, 300: отсутствует |
/умножьте | ПОЧТА | * | X: int, y: int | Умножение двух чисел | 200: ОК, 300: отсутствует |
/разделять | ПОЧТА | / | x: int, y: int | Разделив два числа | 200: ОК, 301: отсутствует, 302: y нуле |
from flask import Flask, jsonify, request from flask_restful import Api, Resource app = Flask(__name__) api = Api(app) def checkPostedData(postedData, functionName): if (functionName == "add" or functionName == "subtract" or functionName == "multiply"): if "x" not in postedData or "y" not in postedData: return 301 #Missing parameter else: return 200 elif (functionName == "division"): if "x" not in postedData or "y" not in postedData: return 301 elif int(postedData["y"])==0: return 302 else: return 200 class Add(Resource): def post(self): #If I am here, then the resouce Add was requested using the method POST #Step 1: Get posted data: postedData = request.get_json() #Steb 1b: Verify validity of posted data status_code = checkPostedData(postedData, "add") if (status_code!=200): retJson = { "Message": "An error happened", "Status Code":status_code } return jsonify(retJson) #If i am here, then status_code == 200 x = postedData["x"] y = postedData["y"] x = int(x) y = int(y) #Step 2: Add the posted data ret = x+y retMap = { 'Message': ret, 'Status Code': 200 } return jsonify(retMap) class Subtract(Resource): def post(self): #If I am here, then the resouce Subtract was requested using the method POST #Step 1: Get posted data: postedData = request.get_json() #Steb 1b: Verify validity of posted data status_code = checkPostedData(postedData, "subtract") if (status_code!=200): retJson = { "Message": "An error happened", "Status Code":status_code } return jsonify(retJson) #If i am here, then status_code == 200 x = postedData["x"] y = postedData["y"] x = int(x) y = int(y) #Step 2: Subtract the posted data ret = x-y retMap = { 'Message': ret, 'Status Code': 200 } return jsonify(retMap) class Multiply(Resource): def post(self): #If I am here, then the resouce Multiply was requested using the method POST #Step 1: Get posted data: postedData = request.get_json() #Steb 1b: Verify validity of posted data status_code = checkPostedData(postedData, "multiply") if (status_code!=200): retJson = { "Message": "An error happened", "Status Code":status_code } return jsonify(retJson) #If i am here, then status_code == 200 x = postedData["x"] y = postedData["y"] x = int(x) y = int(y) #Step 2: Multiply the posted data ret = x*y retMap = { 'Message': ret, 'Status Code': 200 } return jsonify(retMap) class Divide(Resource): def post(self): #If I am here, then the resouce Divide was requested using the method POST #Step 1: Get posted data: postedData = request.get_json() #Steb 1b: Verify validity of posted data status_code = checkPostedData(postedData, "division") if (status_code!=200): retJson = { "Message": "An error happened", "Status Code":status_code } return jsonify(retJson) #If i am here, then status_code == 200 x = postedData["x"] y = postedData["y"] x = int(x) y = int(y) #Step 2: Multiply the posted data ret = (x*1.0)/y retMap = { 'Message': ret, 'Status Code': 200 } return jsonify(retMap) api.add_resource(Add, "/add") api.add_resource(Subtract, "/subtract") api.add_resource(Multiply, "/multiply") api.add_resource(Divide, "/division") @app.route('/') def hello_world(): return "Hello World!" if __name__=="__main__": app.run(debug=True)
Почему бы не поделиться ссылкой для этого поста в Twitter? Распространить слово!
Не забудьте Следуй за мной в Твиттере
Спасибо!
Оригинал: “https://dev.to/thecraftman/understanding-and-implementing-a-simple-rest-api-jok”