빠른 API [1부]

안녕하세요, 오늘은 Fast API를 이용하여 Rest API를 개발하는 방법에 대해 알아보겠습니다. 최소한의 코드로 API를 빠르게 구성할 수 있습니다.


따라하기 위한 전제 조건

🎯 파이썬 설치
🎯 Pipenv 가상 환경
🎯 Vscode


pipenv 설치
pip install --user pipenv

팔로우를 하려면 다음 전제 조건이 필요합니다.

fastapi 설치pipenv install fastapi이렇게 하면 프로젝트 디렉터리에 Pipfile 및 Pipfile.lock 파일이 생성됩니다. Nodejs의 package.jsonpackage.lock.json 파일과 같은 것을 생각하십시오. pipfile은 프로젝트 종속성을 보유합니다.





서버를 시작하려면 uvicorn가 필요합니다. sourcepipenv install uvicorn[standard]

기본 앱 설정

이제 서버를 구축해 보겠습니다.

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}


위는 우리 restapi의 가장 기본적인 버전입니다.
vscode를 사용하고 Python 인터프리터를 찾을 수 없기 때문에 이제 문제가 발생했습니다.


고정 import "fastapi" could not be resolved
1) VsCode에서 Ctrl + Shift + P를 누릅니다.



2) 프로젝트 이름과 일치하는 Python 인터프리터를 선택합니다.


더 이상 경고가 없습니다.
그런 다음 다음 명령을 실행하여 앱을 시작합니다.uvicorn main:app --reload



API 테스트

uvicorn 명령을 실행할 때 제공된 호스트 및 포트에서 브라우저를 방문하십시오. http://127.0.0.1:8000에서 브라우저를 엽니다.



JSON 응답을 받았습니다.

Javascript의 개체 배열과 같이 사전 목록을 출력하는 다른 끝점을 만들어 봅시다.



이제 브라우저를 방문하겠습니다http://127.0.0.1:8000/persons.



FastApi의 장점은 Swagger라는 문서화 엔진이 미리 로드되어 있다는 것입니다.
http://127.0.0.1:8000/docs를 방문하여 이전에 언급한 두 끝점에 대한 설명서를 가져옵니다.





다음으로 pydantic의 BaseModel을 사용하여 게시물 요청을 생성합니다.

from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}



@app.get("/persons")
async def persons():
    return {"data": [
                        {"name": "John", "age": 30, "tall": True},
                        {"name": "Doe", "age": 25}
                    ]}

class Person(BaseModel):
    name: str
    age: int | None = None
    tall: bool = False

@app.post("/persons")
async def create_person(person: Person):
    return {"data": person} 


이제 swagger 문서를 사용하여 create_person 끝점을 테스트해 보겠습니다.


실행을 클릭하면 다음을 얻습니다.



pydantic 모델에서 방법을 수행해 봅시다.
  • 이름을 대문자로 변경
  • 문자열 형식을 사용하여 결과를 출력합니다.

  • from typing import Optional
    from fastapi import FastAPI
    from pydantic import BaseModel
    
    app = FastAPI()
    
    
    @app.get("/")
    async def root():
        return {"message": "Hello World"}
    
    
    class Person(BaseModel):
        name: str
        age: int | None = None
        tall: bool = False
    
    @app.post("/persons")
    async def create_person(person: Person):
        return {"data": f"my name is {person.name.upper()} and i am {person.age} years old"}
    
    


    결과:



    결론

    몇 분 만에 이 최신 Python 프레임워크를 사용하여 restapi를 생성하는 방법을 배웠고 fast api와 함께 사전 설치된 swagger 문서를 탐색했습니다.
    다음 단원에서는 sqlalchemy 데이터베이스에 대한 전체 CRUD 기능과 오류 처리 및 상태 코드를 만드는 방법을 살펴보겠습니다.

    이 게시물이 도움이 되었기를 바랍니다. 시간을 내어 읽어주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기