mirror of https://github.com/tiangolo/fastapi.git
Update sub-applications.md
This commit is contained in:
parent
27f90af888
commit
41ce0a0147
|
|
@ -1,34 +1,34 @@
|
||||||
# 하위 애플리케이션 - 마운트
|
# 하위 응용프로그램 - 마운트
|
||||||
|
|
||||||
만약 각각의 독립적인 OpenAPI와 문서 UI를 갖는 두 개의 독립적인 FastAPI 애플리케이션이 필요하다면, 메인 어플리케이션에 하나 (또는 그 이상의) 하위-어플리케이션(들)을 “마운트"해서 사용할 수 있습니다.
|
만약 각각의 독립적인 OpenAPI와 문서 UI를 갖는 두 개의 독립적인 FastAPI 응용프로그램이 필요하다면, 메인 어플리케이션에 하나 (또는 그 이상의) 하위-응용프로그램(들)을 “마운트"해서 사용할 수 있습니다.
|
||||||
|
|
||||||
## **FastAPI** 애플리케이션 마운트
|
## **FastAPI** 응용프로그램 마운트
|
||||||
|
|
||||||
“마운트"이란 완전히 “독립적인" 애플리케이션을 특정 경로에 추가하여 해당 하위 애플리케이션에서 선언된 *경로 동작*을 통해 해당 경로 아래에 있는 모든 작업들을 처리할 수 있도록 하는 것을 의미합니다.
|
“마운트"이란 완전히 “독립적인" 응용프로그램을 특정 경로에 추가하여 해당 하위 응용프로그램에서 선언된 *경로 동작*을 통해 해당 경로 아래에 있는 모든 작업들을 처리할 수 있도록 하는 것을 의미합니다.
|
||||||
|
|
||||||
### 최상단 애플리케이션
|
### 최상단 응용프로그램
|
||||||
|
|
||||||
먼저, 메인, 최상단의 **FastAPI** 애플리케이션과 이것의 *경로 동작*을 생성합니다:
|
먼저, 메인, 최상단의 **FastAPI** 응용프로그램과 이것의 *경로 동작*을 생성합니다:
|
||||||
|
|
||||||
```Python hl_lines="3 6-8"
|
```Python hl_lines="3 6-8"
|
||||||
{!../../../docs_src/sub_applications/tutorial001.py!}
|
{!../../../docs_src/sub_applications/tutorial001.py!}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 하위 애플리케이션
|
### 하위 응용프로그램
|
||||||
|
|
||||||
다음으로, 하위 애플리케이션과 이것의 *경로 동작*을 생성합니다:
|
다음으로, 하위 응용프로그램과 이것의 *경로 동작*을 생성합니다:
|
||||||
|
|
||||||
이 하위 애플리케이션은 단지 또 다른 표준 FastAPI 애플리케이션입니다. 다만 이것은 “마운트”될 것입니다:
|
이 하위 응용프로그램은 또 다른 표준 FastAPI 응용프로그램입니다. 다만 이것은 “마운트”될 것입니다:
|
||||||
|
|
||||||
```Python hl_lines="11 14-16"
|
```Python hl_lines="11 14-16"
|
||||||
{!../../../docs_src/sub_applications/tutorial001.py!}
|
{!../../../docs_src/sub_applications/tutorial001.py!}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 하위 애플리케이션 마운트
|
### 하위 응용프로그램 마운트
|
||||||
|
|
||||||
최상단 애플리케이션, `app`에 하위 애플리케이션, `subapi`를 마운트합니다.
|
최상단 응용프로그램, `app`에 하위 응용프로그램, `subapi`를 마운트합니다.
|
||||||
|
|
||||||
이 예시에서, 하위 애플리케이션은 `/subapi` 경로에 마운트 될 것입니다:
|
이 예시에서, 하위 응용프로그램션은 `/subapi` 경로에 마운트 될 것입니다:
|
||||||
|
|
||||||
```Python hl_lines="11 19"
|
```Python hl_lines="11 19"
|
||||||
{!../../../docs_src/sub_applications/tutorial001.py!}
|
{!../../../docs_src/sub_applications/tutorial001.py!}
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
### 자동으로 생성된 API 문서 확인
|
### 자동으로 생성된 API 문서 확인
|
||||||
|
|
||||||
이제, `uvicorn`으로 메인 애플리케이션을 실행하십시오. 당신의 파일이 `main.py`라면, 이렇게 실행합니다:
|
이제, `uvicorn`으로 메인 응용프로그램을 실행하십시오. 당신의 파일이 `main.py`라면, 이렇게 실행합니다:
|
||||||
|
|
||||||
<div class="termy">
|
<div class="termy">
|
||||||
|
|
||||||
|
|
@ -50,24 +50,24 @@ $ uvicorn main:app --reload
|
||||||
|
|
||||||
그리고 <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>에서 문서를 여십시오.
|
그리고 <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>에서 문서를 여십시오.
|
||||||
|
|
||||||
메인 애플리케이션의 *경로 동작*만을 포함하는, 메인 애플리케이션에 대한 자동 API 문서를 확인할 수 있습니다:
|
메인 응용프로그램의 *경로 동작*만을 포함하는, 메인 응용프로그램에 대한 자동 API 문서를 확인할 수 있습니다:
|
||||||
|
|
||||||
<img src="https://fastapi.tiangolo.com//img/tutorial/sub-applications/image01.png">
|
<img src="https://fastapi.tiangolo.com//img/tutorial/sub-applications/image01.png">
|
||||||
|
|
||||||
다음으로, <a href="http://127.0.0.1:8000/subapi/docs" class="external-link" target="_blank">http://127.0.0.1:8000/subapi/docs</a>에서 하위 애플리케이션의 문서를 여십시오.
|
다음으로, <a href="http://127.0.0.1:8000/subapi/docs" class="external-link" target="_blank">http://127.0.0.1:8000/subapi/docs</a>에서 하위 응용프로그램의 문서를 여십시오.
|
||||||
|
|
||||||
하위 경로 접두사 `/subapi` 아래에 선언된 *경로 동작* 을 포함하는, 하위 애플리케이션에 대한 자동 API 문서를 확인할 수 있습니다:
|
하위 경로 접두사 `/subapi` 아래에 선언된 *경로 동작* 을 포함하는, 하위 응용프로그램에 대한 자동 API 문서를 확인할 수 있습니다:
|
||||||
|
|
||||||
<img src="https://fastapi.tiangolo.com//img/tutorial/sub-applications/image02.png">
|
<img src="https://fastapi.tiangolo.com//img/tutorial/sub-applications/image02.png">
|
||||||
|
|
||||||
두 사용자 인터페이스 중 어느 하나를 사용해야하는 경우, 브라우저는 특정 애플리케이션 또는 하위 애플리케이션과 각각 통신할 수 있기 때문에 올바르게 동작할 것입니다.
|
두 사용자 인터페이스 중 어느 하나를 사용해야하는 경우, 브라우저는 특정 응용프로그램 또는 하위 응용프로그램과 각각 통신할 수 있기 때문에 올바르게 동작할 것입니다.
|
||||||
|
|
||||||
### 기술적 세부사항: `root_path`
|
### 기술적 세부사항: `root_path`
|
||||||
|
|
||||||
위에 설명된 것과 같이 하위 애플리케이션을 마운트하는 경우, FastAPI는 `root_path`라고 하는 ASGI 명세의 매커니즘을 사용하여 하위 애플리케이션에 대한 마운트 경로 통신을 처리합니다.
|
위에 설명된 것과 같이 하위 응용프로그램을 마운트하는 경우, FastAPI는 `root_path`라고 하는 ASGI 명세의 매커니즘을 사용하여 하위 응용프로그램에 대한 마운트 경로 통신을 처리합니다.
|
||||||
|
|
||||||
이를 통해, 하위 애플리케이션은 문서 UI를 위해 경로 접두사를 사용해야 한다는 사실을 인지합니다.
|
이를 통해, 하위 응용프로그램은 문서 UI를 위해 경로 접두사를 사용해야 한다는 사실을 인지합니다.
|
||||||
|
|
||||||
하위 애플리케이션에도 역시 다른 하위 애플리케이션을 마운트하는 것이 가능하며 FastAPI가 모든 `root_path` 들을 자동적으로 처리하기 때문에 모든 것은 올바르게 동작할 것입니다.
|
하위 응용프로그램에도 역시 다른 하위 응용프로그램을 마운트하는 것이 가능하며 FastAPI가 모든 `root_path` 들을 자동적으로 처리하기 때문에 모든 것은 올바르게 동작할 것입니다.
|
||||||
|
|
||||||
`root_path`와 이것을 사용하는 방법에 대해서는 [프록시의 뒷단](./behind-a-proxy.md){.internal-link target=_blank} 섹션에서 배울 수 있습니다.
|
`root_path`와 이것을 사용하는 방법에 대해서는 [프록시의 뒷단](./behind-a-proxy.md){.internal-link target=_blank} 섹션에서 배울 수 있습니다.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue