Sensei는 라우팅, 데이터 검증 및 응답 매핑을 자동으로 처리하여 API 클라이언트 생성 프로세스를 단순화합니다. 이렇게 하면 HTTP 요청의 복잡성이 줄어들고 상용구 코드를 작성하지 않고도 API를 프로젝트에 더 쉽게 통합할 수 있습니다.
Sensei는 유형 힌트를 사용하여 API 클라이언트를 생성하고 API와의 상호작용을 위한 명확한 인터페이스와 강력한 검증을 제공합니다. 구문은 FastAPI
프레임워크와 매우 유사합니다.from typing import Annotated from sensei import Router, Path, APIModel router = Router('https://pokeapi.co/api/v2/') class Pokemon(APIModel): name: str id: int height: int weight: int @router.get('/pokemon/{name}') def get_pokemon(name: Annotated[str, Path(max_length=300)]) -> Pokemon: pass pokemon = get_pokemon(name="pikachu") print(pokemon) # Pokemon(name='pikachu'> <p>Didn't it seem to you that the function doesn't contain the code? <strong>Sensei writes it instead of you!</strong> The result of the call get_pokemon(name="pikachu") is the object Pokemon(name='pikachu'> </p><p>There is a wonderful OOP approach proposed by Sensei:<br> </p> <pre class="brush:php;toolbar:false">class User(APIModel): email: EmailStr id: PositiveInt first_name: str last_name: str avatar: AnyHttpUrl @classmethod @router.get('/users') def query( cls, page: Annotated[int, Query()] = 1, per_page: Annotated[int, Query(le=7)] = 3 ) -> list[Self]: pass @classmethod @router.get('/users/{id_}') def get(cls, id_: Annotated[int, Path(alias='id')]) -> Self: pass @router.post('/token') def login(self) -> str: pass @login.prepare def _login_in(self, args: Args) -> Args: args.json_['email'] = self.email return args @login.finalize def _login_out(self, response: Response) -> str: return response.json()['token'] user = User.get(1) user.login() # User(id=1, email="john@example.com", first_name="John", ...)
선생님이 요청을 처리하는 방법을 모르는 경우 전처리를 준비로, 후처리를 마무리로 사용하여 직접 처리할 수 있습니다.
Sensei: 높은 수준의 추상화를 제공합니다. Sensei는 API 래퍼 생성을 단순화하고 쉬운 라우팅, 데이터 검증 및 모델에 대한 API 응답 자동 매핑을 위한 데코레이터를 제공합니다. 이렇게 하면 상용구가 줄어들고 코드 가독성과 유지 관리성이 향상됩니다.
Bare HTTP 클라이언트: 요청이나 httpx와 같은 베어 HTTP 클라이언트에는 수동으로 요청 관리, 응답 구문 분석 처리, 데이터 검증 및 오류 처리가 필요합니다. 엔드포인트마다 반복적인 코드를 작성해야 합니다.
Sensei는 표준 API와 지저분한 API 모두에 유용한 기능을 제공합니다.
API 작업을 하는 개발자, 데이터 과학자, 분석가 등
위 내용은 Sensei: API 클라이언트 생성 단순화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!