"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 안정적인 라우팅 - Flask API 예제

안정적인 라우팅 - Flask API 예제

2024-11-08에 게시됨
검색:864

Restful Routing - A Flask API Example

Restful 라우팅은 모든 다른 애플리케이션에서도 라우팅을 일관되게 만들기 위한 추진력입니다. REST는 표현 상태 전송입니다. 일관되고 사람이 읽을 수 있고 기계가 읽을 수 있는 방식으로 HTTP를 사용합니다.

표준은 GET, POST, PATCH, PUT 및 DELETE입니다.

아래에서는 전면에서 정보를 가져오거나 제공하고 필요한 작업을 수행하기 위한 플라스크 API 데이터베이스의 몇 가지 편안한 경로에 대한 예를 제공합니다.

Flask를 사용하는 서버 측 사용자에 대한 GET의 예는 아래 코드를 사용하는 것입니다.

먼저 이러한 항목도 가져와야 합니다. db 가져오기는 나중에 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")

이 코드를 분석합니다.

사용자 리소스에 대한 클래스를 만들고 리소스를 인수로 입력해야 합니다.

다음으로 get에 대한 함수를 만듭니다. 이 함수는 User 테이블을 쿼리한 다음 웹페이지에 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")

가져오기와 다른 삭제에서 무슨 일이 일어나고 있는지 더 자세히 설명하려면 몇 가지 사항이 필요합니다. 먼저 한 명의 사용자를 삭제하는 것이므로 새 리소스를 생성해야 합니다. 유사하게 설정되었지만 복수형은 아닙니다.

그런 다음 삭제 기능을 만듭니다. 삭제할 사용자를 결정하기 위해 프런트 엔드에서 전송된 ID를 전달해야 하므로 두 개의 인수가 필요합니다. 그런 다음 db 세션 삭제 및 커밋을 사용하여 데이터베이스를 업데이트합니다. 그 후에는 다시 보낼 내용이 없고 삭제 상태(204)가 있으므로 빈 응답을 반환합니다.

마지막으로 리소스를 생성해야 합니다. 이번에는 UserResource를 사용합니다. 경로는 단수이고 프런트 엔드로 전달된 ID를 가지며 끝점도 단수입니다.

RESTful 라우팅을 사용하면 서로 다른 애플리케이션 간에 전환할 때 모든 사람이 백엔드 라우팅에 대해 따를 수 있고 표준화된 경로를 알 수 있는 표준이 있습니다. 또한 경로를 더 깔끔하고 읽기 쉽게 만듭니다.

릴리스 선언문 이 글은 https://dev.to/spencer_adler_880da14d230/restful-routing-a-flask-api-example-5cpb?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3