«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Restful Routing — пример Flask API

Restful Routing — пример Flask API

Опубликовано 8 ноября 2024 г.
Просматривать:793

Restful Routing - A Flask API Example

Restful маршрутизация — это попытка сделать маршрутизацию согласованной во всех различных приложениях. REST — это передача репрезентативного состояния. Он использует HTTP последовательным, удобным для чтения человеком и машиночитаемым способом.

Стандартами являются GET, POST, PATCH, PUT и DELETE.

Ниже будет приведен пример пары спокойных маршрутов в базе данных API flask для получения/передачи информации из/в переднюю часть и выполнения необходимых действий.

Пример GET для пользователей на стороне сервера с использованием flask использует приведенный ниже код.

Сначала вам также необходимо будет импортировать эти элементы. Импорт базы данных будет использоваться позже для примера DELETE.

from flask import request (*Used for POST and PATCH*)
from config import db, api, app 

from flask_restful import Resource
from models.user import User

Чтобы импорт работал, ваш файл конфигурации должен быть настроен, как показано ниже.

 db = SQLAlchemy(app=app, metadata=metadata)
 api = Api(app=app)

Код GET в пользовательском маршруте:

 class UsersResource(Resource):
     def get(self):
        users = [user.to_dict() for user in User.query.all()]
        return users, 200

 api.add_resource(UsersResource, "/api/users", endpoint="users")

Чтобы разобрать этот код.

Вам нужно будет создать класс для ресурса «Пользователи» и указать этот ресурс в качестве аргумента.

Далее создайте функцию для получения. Функция запросит таблицу пользователей, а затем создаст список всех пользователей, преобразуя их в словари для передачи, чтобы их можно было увидеть на веб-странице в формате JSON. Затем вы возвращаете список, а также код состояния 200, подтверждающий успешный запрос.

Наконец, вам нужно будет создать ресурс. Назовите ресурс, который вы используете, а также путь и конечную точку. /api добавляется перед путем, чтобы веб-сайт хостинга мог различать передний и внутренний маршрут.

Для DELETE вам придется создать еще один ресурс для удаления одного пользователя. См. код ниже:

 class UserResource(Resource):
     def delete(self, id):
         user= User.query.get(id)
         db.session.delete(user)
         db.session.commit()
         return {}, 204

 api.add_resource(UserResource, "/api/user/", 
 endpoint="user")

Чтобы подробнее объяснить, что происходит при удалении, которое отличается от получения, есть несколько вещей. Сначала это просто удаление одного пользователя, поэтому вам нужно будет создать новый ресурс. Оно устроено аналогично, но не во множественном числе.

Затем вы создаете функцию удаления. Ему потребуются два аргумента, поскольку вам нужно передать идентификатор, отправленный из внешнего интерфейса, чтобы определить, какого пользователя следует удалить. Затем вы будете использовать удаление сеанса БД и фиксацию для обновления базы данных. После этого вы возвращаете пустой ответ, поскольку отправлять обратно нечего, и статус удаления (204).

Наконец, вам нужно создать ресурс. На этот раз с использованием UserResource. Путь будет отличаться от единственного числа и иметь идентификатор, который был передан во внешний интерфейс, и конечная точка также будет единственной.

Маршрутизация RESTful позволяет при переключении между различными приложениями использовать стандарт, которому каждый может следовать для внутренней маршрутизации и знать стандартизированные пути. Кроме того, это делает пути чище и легче читаемыми.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/spencer_adler_880da14d230/restful-routing-a-flask-api-example-5cpb?1 Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3