FastAPI
[ FastAPI ] 경로 매개변수와 숫자형 유효성 검사
[ FastAPI ] 경로 매개변수와 숫자형 유효성 검사
2021.09.03Query 를 사용한 쿼리 매개변수로 더 많은 유효성 검사와 메타 데이터를 선언한 것과 똑같은 방법으로, Path 를 사용한 경로 매개변수로 동일한 자료형 유효성 검사와 메타 데이터를 선언할 수 있습니다. 경로 임포트 우선, fastapi 로 부터 Path 를 임포트 하시기 바랍니다: 메타 데이터 선언 Query 와 마찬가지로 동일한 모든 매개변수를 선언할 수 있습니다. 예를 들어, title 이라는 메타 데이터 값을 경로 매개변수 item_id 로 선언할 수 있습니다: 참고 경로 매개변수는 항상 경로의 일부분으로 요구됩니다. 따라서, ... 를 사용하여 그것이 요구되는 것임을 표시해야 합니다. 그럼에도 불구하고, None 또는 기본 값을 설정하여 선언하면, 아무런 영향을 끼치지 못하고, 여전히 필수적으..
[ FastAPI ] 쿼리 매개변수와 문자열 유효성 검사
[ FastAPI ] 쿼리 매개변수와 문자열 유효성 검사
2021.09.02FastAPI는 추가적인 정보와 유효성 검사를 매개변수에 선언할 수 있게 해줍니다. 아래 애플리케이션 예시를 한 번 같이 살펴봅시다: 쿼리 매개변수 q 는 Optional[str] 자료형이고, 이는 곧 str 이면서 동시에 None 이 될 수 있다는 걸 의미하며, 실제로, 기본 값이 None 이게 됩니다, 따라서 FastAPI는 이것이 필수로 요구되지 않는다는 걸 알게 됩니다. 참고 FastAPI는 기본 값이 = None 이기 때문에 q 의 값이 필수로 요구되지 않는다는 걸 알 수 있습니다. Optional[str] 속 Optional 은 FasAPI에 의해 사용되지는 않지만, 편집기가 더 잘 지원하며 오류를 찾아낼 수 있게 해줍니다. 추가적인 유효성 검사 q 가 선택 사항이지만, 값이 주어졌을 때, 그..
[ FastAPI ] 요청 바디
[ FastAPI ] 요청 바디
2021.08.29클라이언트로부터 (브라우저라 가정해봅시다) 당신의 API로 데이터를 보내야 할 때, 요청 바디로 보낼 수 있습니다. 요청 바디는 클라이언트가 API로 전달하는 데이터입니다. 응답 바디는 API가 클라이언트로 전달하는 데이터입니다. API는 거의 항상 응답 바디를 보내야 합니다. 하지만 클라이언트는 매번 의무적으로 요청 바디를 보낼 필요가 없습니다. 요청 바디를 선언하기 위해, Pydantic 모델의 기능과 이점을 사용할 수 있습니다. 정보 데이터를 보내기 위해, 다음 중 하나를 사용해야 합니다: (주로 사용되는) POST , PUT , DELETE 또는 PATCH . GET 요청과 함께 바디를 전달하는 건 명세서에 정의되지 않은 행동이지만, 그럼에도 불구하고, 복잡하고/극단적인 사용 사례을 위해 Fast..
[ FastAPI ] HTTPS
[ FastAPI ] HTTPS
2021.08.29HTTPS가 단지 "가능"한지 여부는 쉽게 추측할 수 있을 것 같습니다. 그러나 이것은 생각보다 더 복잡합니다. 팁 급하거나 신경 쓰지 않는다면, 다음 섹션으로 넘어가 다른 기술로 모든 것을 설정하는 단계별 지침을 따르시면 됩니다. 사용자 관점에서, HTTPS의 기본을 배우기 위해서는, https://howhttps.works/ko/ 을 확인하시기 바랍니다. 이제, 개발자 관점에서, HTTPS에 관해 생각할 때 염두에 두어야 할 몇 가지 사항이 있습니다: HTTPS을 위해서는, 서버에 제삼자에 의해 생성된 "인증서"가 있어야 합니다. 이러한 인증서는 실제로 "생성된" 것이 아니라, 제삼자를 통해 획득합니다. 인증서는 유효 기간이 존재합니다. 따라서 만료될 수 있습니다. 그리고 갱신되어야 하며, 제삼자를 ..
[ FastAPI ] FastAPI 버전
[ FastAPI ] FastAPI 버전
2021.08.29FastAPI는 이미 많은 애플리케이션과 시스템의 실제 제품으로 사용되고 있습니다. 그리고 테스트 커버리지는 100%로 유지되고 있습니다. 그러나 그 개발은 여전히 빠르게 변화하고 있습니다. 새로운 기능이 자주 추가되며, 버그는 정기적으로 수정되고, 코드는 계속해서 개선되고 있습니다. 이것이 어째서 최신 버전이 아직 0.x.x 인 이유이며, 각 버전마다 잠재적으로 다른 것에 영향을 줄 수 있는 변경 사항이 있을 수 있음에 대한 방증입니다. 이는 유의적 버전 규칙을 따릅니다. 지금 당장 FastAPI를 사용해 애플리케이션 제품을 만들고, (아마도 한 동안 동일한 버전으로 했을 것입니다) 나머지 코드로 올바르게 작동하는 버전을 사용 중인지 확인하기만 하면 됩니다. fastapi 버전 고정 가장 우선적으로 해..
[ FastAPI ] 배포 - 도입부
[ FastAPI ] 배포 - 도입부
2021.08.29FastAPI 애플리케이션을 배포하는 건 상대적으로 쉽습니다. 배포의 의미 애플리케이션 배포는 사용자가 애플리케이션을 사용 할 수 있게 만들기 위해 필요한 단계를 수행하는 걸 의미합니다. 웹 API의 경우, 사용자가 중단 또는 문제 없이 애플리케이션에 효율적으로 접근할 수 있도록, 훌륭한 성능, 안정성, 기타 등등을 제공하는 서버 프로그램과 함께, 보통 원격 머신 내에 이를 넣는 작업이 포함됩니다. 이것은 지속적으로 코드를 변경하고, 엎었다가 고치고, 개발 서버를 중지했다가 다시 시작하는 등의 개발 단계와 대조됩니다. 배포 전략 특정 사용 사례와 사용 중인 도구에 따라 다양한 방법이 존재합니다. 도구를 조합하여 직접 서버를 배포하거나, 그런 작업의 일부분을 수행하는 클라우드 서비스, 또는 다른 가능한 선..
[ FastAPI ] 쿼리 매개변수
[ FastAPI ] 쿼리 매개변수
2021.08.28만약 경로 매개변수의 일부가 아닌 다른 함수 매개변수를 선언한다면, 그것들은 자동으로 "쿼리" 매개변수로 해석됩니다. 쿼리는 & 문자로 구분되고, URL 속 ? 다음에 오는 키-값 쌍으로 이루어진 집합입니다. 예를 들어, 다음과 같은 URL이 있습니다: ... 여기서 쿼리 매개변수는 다음과 같습니다: skip : 0 이라는 값을 가집니다. limit : 10 이라는 값을 가집니다. 이것들은 URL의 한 부분이기 때문에, "당연히" 문자열입니다. 그러나 (위 예시에서의 int 처럼) 파이썬 자료형으로 선언한다면 이것은 해당 자료형으로 변환되고 유효성 검사가 진행됩니다. 경로 매개변수에서 동작하는 모든 작업은 쿼리 매개변수에서도 동작합니다: (명백한) 편집기의 지원 데이터 "파싱" 데이터 유효성 검사 자동 ..
[ FastAPI ] 경로 매개변수
[ FastAPI ] 경로 매개변수
2021.08.27파이썬 문자열 포맷팅에서 사용되는 문법으로 똑같이 경로 "매개변수" 또는 "변수"를 선언할 수 있습니다: 경로 매개변수의 값 item_id 는 item_id 인자로 함수에 전달됩니다. 따라서, 만약 이 예시를 실행하고 http://127.0.0.1:8000/items/foo로 이동한다면, 다음과 같은 결과를 확인할 수 있습니다: 자료형을 사용한 경로 매개변수 표준 파이썬 자료형 어노테이션을 사용하여, 함수 속 경로 매개변수의 자료형을 정의할 수 있습니다: 이 경우, item_id 는 int 로 선언 되었습니다. 확인 이것은 함수 내부에서의, 에러 확인, 자동 완성, 기타 등등의 편집기 도움을 지원합니다. 데이터 변환 만약 이 예시를 실행하고 http://127.0.0.1:8000/items/3로 브라우저..
[ FastAPI ] 첫 단계
[ FastAPI ] 첫 단계
2021.08.26가장 간단한 FastAPI 파일은 다음과 같은 형태입니다: main.py 파일에 이 코드를 복사하시기 바랍니다. 그리고 라이브 서버를 실행하시기 바랍니다: 참고 uvicorn main:app 명령어 의미는 다음과 같습니다. - main : (파이썬 "모듈"인) main.py 파일 - app : main.py 파일에 app = FastAPI() 라인으로 만들어진 객체 - --reload : 코드가 변경될 때의 서버 자동 재시작. 개발 환경에서만 사용. 결과물에는, 다음과 같은 라인이 출력됩니다: 이 라인은 당신의 로컬 기계에서, 애플리케이션이 제공되는 URL을 보여줍니다. 결과 확인 http://127.0.0.1:8000 주소로 브라우저를 열어보시기 바랍니다. 다음과 같은 JSON 응답을 확인할 수 있습니..
[ FastAPI ] 튜토리얼 - 사용자 지침서 - 도입
[ FastAPI ] 튜토리얼 - 사용자 지침서 - 도입
2021.08.25이 튜토리얼은 대부분의 FastAPI 기능을 단계 별로 어떻게 사용하는지 보여줍니다. 각 섹션은 이전 섹션을 바탕으로 점점 심화되지만, 구조적으로는 토픽 별로 나눠져 있으니, 해결해야 할 특정 API 요구에 맞춰 특정 섹션을 바로 읽어도 무관합니다. 이것은 또한 추후 참고 자료로 사용될 수 있게 작성되었습니다. 그러니 확실하게 필요한 부분은 나중에 와서 참고해도 좋습니다. 코드 실행 모든 코드 블록은 (실제로 파이썬 파일로 테스트 되었기 때문에) 복사하여 바로 실행할 수 있습니다. 아무 예시를 실행할 때, main.py 파일에 코드를 복사한 뒤, 다음과 같이 uvicorn 을 실행하시면 됩니다: 코드를 작성하거나 복사한 뒤, 로컬 환경에서 수정하고 실행하는 걸 강력히 권고합니다. 직접 에디터에서 사용해야..