Рубрики
Без рубрики

Создание базового API RESTful в Python

Создание базового REST API в Python с использованием фреймворка Flask

Автор оригинала: 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 и код колбы.

Снимок экрана 2017-02-13 в 11.17.52.png

Теперь мы создаем базовую виртуальную среду для Python2.7 и устанавливаем пакеты после ее активации.

$ virtualenv venv
$ source venv/bin/activate
$ pip install flask flask-jsonpify flask-sqlalchemy flask-restful
$ pip freeze

Снимок экрана 2017-02-13 в 11.23.35.png

Давайте создадим базовый GET API

У ОСТАЛЬНЫХ есть 4 варианта

  • ПОЛУЧИТЬ
  • КЛАСТЬ
  • ПОСТ
  • УДАЛИТЬ Мы разберемся с GET, и вы поймете, как работает другое

Перед кодом подключитесь к базе данных.

Снимок экрана 2017-02-13 в 11.30.36.png

Теперь, когда все настроено, мы начинаем код раскрытия данных о сотрудниках и отслеживаем данные из базы данных, а также добавляем оператор запроса о сотрудниках, где данные сотрудника ищутся и извлекаются 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')
     

Будет создано три маршрута:

Создать API очень просто. Вы также можете добавить поддержку для РАЗМЕЩЕНИЯ,ПУБЛИКАЦИИ и УДАЛЕНИЯ данных. Ссылка на GitHub приведена ниже. Разветвляйте, клонируйте и добавляйте опоры и возвращайте мне запросы на вытягивание

Ссылка на проект: https://github.com/sagaragarwal94/python_rest_flask

Ресурсы

Вопросы/Хотите узнать больше .Ударил меня ? Закажите сеанс со мной