FastAPI 의존성 주입, 코드를 까보자
·
탐구 생활/FastAPI
이전 글에서 FastAPI 가 제공하는 의존성 주입 기능을 알아보았다. 하지만 그정도는 어떻게 쓰는지 알아보는 정도이고 아직 풀리지 않는 궁금증이 많다. "어떻게 Callable 만 받아들이는가?""서브-의존성 을 구현하는 방법은 무엇인가?""왜 FastAPI 경로 동작 함수(path operation function)에서만 동작하는가?" 이런 궁금증을 풀기 위해서는 직접 코드를 까보는게 최고다.  fastapi.param_functions.Depends코드를 까본 결과 직접 FastAPI 경로 작업 함수(path opration function)에서 참조하는 Depends 는 use_caches 기능이 있었다!  그리고 내부적으로 params.Depenndes 를 호출하여 파라미터를 그대로 전달하는 동..
FastAPI 의존성 주입, Depends 를 알아보자
·
탐구 생활/FastAPI
Spring 을 쓰다가 FastAPI 로 전환하면서 많은 것들이 의문이었지만 그중 가장 큰 것은 "Python 은 빌드되는게 아닌데 의존성 주입을 사용할 수 있나?" 였다. 그리고 그런 나에게 보란듯이 FastAPI 공식 문서에는 의존성 주입 파트가 있다.  이 글은 공식문서를 정독하고 정리하는 글 정도가 되겠다. 이미 어느정도 Depends 를 알고 있고, Depends 의 내부동작을 파악하고 싶다면 다음 글이 도움이 될 수도 있다.FastAPI 의존성 주입(Dependency Injection) 정리FastAPI는 의존성 주입(Dependency Injection, DI)을 통해 코드의 재사용성, 유지보수성, 테스트 용이성을 향상시킨다. 1. 기본 의존성 주입FastAPI에서 기본적인 의존성을 정의하..
오픈소스 초보자의 FastAPI 기여하기
·
탐구 생활/FastAPI
회사에서 FastAPI 로 전환을 하기에 FastAPI Document 를 보면서 공부중이었다. 한국어로 번역된 문서도 있는반면 영어 그대로인 문서들도 있었다. 왜일까? 하고 찾아보던중 FastAPI Github 에서 번역활동이 진행중이며, 한국인 번역 참여자는 16명 정도라는 것을 알게 되었다.  대학생때 수업 대부분을 영어로 들었고 점수도 나쁘지 않았다는 자신감에 그 번역, 내가 하면 되는거 아닌가 하는 생각이 들었다.1) 공부도 하고, 2) 비록 번역이지만 오픈소스에 기여도 해보고, 3) 한국어로 된 자료가 늘어나면 FastAPI 가 한국에 더 뿌리내릴수도 있고, 1석 3조의 전략이었다.첫번째 PR 을 위한 노력하지만 걸림돌이 하나 있었다. 오픈소스에 RP을 날리는 방법을 모른다. 그동안 Sprin..
FastAPI: fastapi-permissions 를 이용한 접근제어
·
탐구 생활/FastAPI
fastapi-permissionsfastapi-permissions는 Pyramid 프레임워크의 Pyraid Securiy 기능에서 영감을 받아 만들어진 라이브러리이다. 2024년 12월 기준으로 마지막 업데이트가 4년 전이어서 최신 FastAPI와의 호환성에 의문이 들지만, 접근 방식이 흥미로워 살펴보게 되었다. fastapi-permissions 가 갖는 주요 철학과 개념, 내구 동작 방식을 살펴본다.1. 주요 철학fastapi-permissions 가 FastAPI security 와는 다른 점은 scope 로 접근을 제어하는게 아니라 더 저수준에서 세밀하게 접근을 제어한다는 것이다. 그에따라 접근자의 권한뿐만 아니라 접근 하려하는 리소스의 상태에 따라서도 접근을 제어할 수 있다.2. 주요 개념F..