Автор оригинала: Sagar Chand Agarwal.
Вступление
Разработка API на Python-очень простая задача. Этот учебник поможет вам создать базовый REST API на Python с помощью фреймворка Flask.
API-интерфейсы REST практически везде. Они являются стандартным методом предоставления баз данных клиентам, и знание того, как разработать REST API, необходимо на всех уровнях стека.
Есть много причин, по которым вы должны научиться разрабатывать API REST на Python. Если вы новичок в разработке API, то изучение того, как разработать REST API, поможет вам продемонстрировать себя отрасли.
Что такое REST API ?
REST (REpresentational State Transfer) – это архитектурный стиль и подход к коммуникациям, который часто используется при разработке веб-сервисов. Использование REST часто предпочтительнее, чем более тяжелый стиль SOAP (Простой протокол доступа к объектам), поскольку REST не использует такую большую пропускную способность, что делает его более подходящим для использования через Интернет. Подход SOAP требует написания или использования предоставленной серверной программы (для обслуживания данных) и клиентской программы (для запроса данных).
Вы получите его более ясным по этой картинке.
Материалы, необходимые для создания нашего первого REST API
- Питон
- Колба
- Колба-SQLAlchemy
- Колба-Успокоительная
- SQlite3
- Jsonify
Пусть Код начинается
Загрузите набор данных из Сведения о сотрудниках и треках и извлеките его в папку проекта с именем “python_rest”. Имя базы данных – “chinook.db”
После загрузки создайте файл с именем server.py в папке python_test. Этот файл будет содержать определения API и код колбы.
Теперь мы создаем базовую виртуальную среду для Python2.7 и устанавливаем пакеты после ее активации.
$ virtualenv venv $ source venv/bin/activate $ pip install flask flask-jsonpify flask-sqlalchemy flask-restful $ pip freeze
Давайте создадим базовый GET API
У ОСТАЛЬНЫХ есть 4 варианта
- ПОЛУЧИТЬ
- КЛАСТЬ
- ПОСТ
- УДАЛИТЬ Мы разберемся с GET, и вы поймете, как работает другое
Перед кодом подключитесь к базе данных.
Теперь, когда все настроено, мы начинаем код раскрытия данных о сотрудниках и отслеживаем данные из базы данных, а также добавляем оператор запроса о сотрудниках, где данные сотрудника ищутся и извлекаются EmployeeID.
Код таков:
from flask import Flask, request from flask_restful import Resource, Api from sqlalchemy import create_engine from json import dumps from flask.ext.jsonpify import jsonify db_connect = create_engine('sqlite:///chinook.db') app = Flask(__name__) api = Api(app) class Employees(Resource): def get(self): conn = db_connect.connect() # connect to database query = conn.execute("select * from employees") # This line performs query and returns json result return {'employees': [i[0] for i in query.cursor.fetchall()]} # Fetches first column that is Employee ID class Tracks(Resource): def get(self): conn = db_connect.connect() query = conn.execute("select trackid, name, composer, unitprice from tracks;") result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]} return jsonify(result) class Employees_Name(Resource): def get(self, employee_id): conn = db_connect.connect() query = conn.execute("select * from employees where EmployeeId =%d " %int(employee_id)) result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]} return jsonify(result) api.add_resource(Employees, '/employees') # Route_1 api.add_resource(Tracks, '/tracks') # Route_2 api.add_resource(Employees_Name, '/employees/') # Route_3 if __name__ == '__main__': app.run(port='5002')
Будет создано три маршрута:
http://127.0.0.1:5002/employees показывает детей всех сотрудников в базе данных
http://127.0.0.1:5002/tracks показывает детали треков
http://127.0.0.1:5002/employees/8 показывает сведения о сотруднике, чей идентификатор сотрудника равен 8
Создать API очень просто. Вы также можете добавить поддержку для РАЗМЕЩЕНИЯ,ПУБЛИКАЦИИ и УДАЛЕНИЯ данных. Ссылка на GitHub приведена ниже. Разветвляйте, клонируйте и добавляйте опоры и возвращайте мне запросы на вытягивание
Ссылка на проект: https://github.com/sagaragarwal94/python_rest_flask
Ресурсы
Вопросы/Хотите узнать больше .Ударил меня ? Закажите сеанс со мной