diff --git a/docs/en/mkdocs.yml b/docs/en/mkdocs.yml
index 1dac0fde4..abbe25450 100644
--- a/docs/en/mkdocs.yml
+++ b/docs/en/mkdocs.yml
@@ -22,6 +22,7 @@ nav:
- Languages:
- en: /
- es: /es/
+ - ja: /ja/
- pt: /pt/
- zh: /zh/
- features.md
diff --git a/docs/es/mkdocs.yml b/docs/es/mkdocs.yml
index 1d4210530..e87262b69 100644
--- a/docs/es/mkdocs.yml
+++ b/docs/es/mkdocs.yml
@@ -22,6 +22,7 @@ nav:
- Languages:
- en: /
- es: /es/
+ - ja: /ja/
- pt: /pt/
- zh: /zh/
- features.md
diff --git a/docs/ja/docs/index.md b/docs/ja/docs/index.md
new file mode 100644
index 000000000..3dfc0c652
--- /dev/null
+++ b/docs/ja/docs/index.md
@@ -0,0 +1,445 @@
+{!../../../docs/missing-translation.md!}
+
+
+
+
+
+ FastAPI framework, high performance, easy to learn, fast to code, ready for production
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+---
+
+**ドキュメント**: https://fastapi.tiangolo.com
+
+**ソースコード**: https://github.com/tiangolo/fastapi
+
+---
+
+FastAPI は、モダンで、速い(高いパフォーマンスな)、標準の Python 型ヒントに基づいて、Python 3.6 以降のバージョンで API をビルドするための Web フレームワークです。
+
+主な特徴:
+
+- **高速**: **NodeJS** や **Go** 並みのとても高いパフォーマンス (Starlette と Pydantic のおかげです)。 [最も高速な Python フレームワークの一つです](#performance).
+
+- **高速なコーディング**: 開発速度を約 200%~300%向上させます。 \*
+- **少ないバグ**: 開発者起因のヒューマンエラーを約 40%削減します。 \*
+- **直感的**: 素晴らしいエディタのサポートや オートコンプリート。 デバッグ時間を削減します。
+- **簡単**: 簡単に利用、習得できるようにデザインされています。ドキュメントを読む時間を削減します。
+- **短い**: コードの重複を最小限にしています。各パラメータからの複数の機能。少ないバグ。
+- **堅牢性**: 自動対話ドキュメントを使用して、本番環境で使用できるコードを取得します。
+- **Standards-based**: API のオープンスタンダードに基づいており、完全に互換性があります: OpenAPI (以前は Swagger として知られていました) や JSON スキーマ.
+
+\* 社内開発チームでのテストに基づき見積もってから、本番アプリケーションの構築します。
+
+## Opinions
+
+"_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._"
+
+Kabir Khan -
Microsoft (ref)
+
+---
+
+"_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_"
+
+Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala -
Uber (ref)
+
+---
+
+"_**Netflix** is pleased to announce the open-source release of our **crisis management** orchestration framework: **Dispatch**! [built with **FastAPI**]_"
+
+Kevin Glisson, Marc Vilanova, Forest Monsen -
Netflix (ref)
+
+---
+
+"_I’m over the moon excited about **FastAPI**. It’s so fun!_"
+
+
+
+---
+
+"_Honestly, what you've built looks super solid and polished. In many ways, it's what I wanted **Hug** to be - it's really inspiring to see someone build that._"
+
+
+
+---
+
+"_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_"
+
+"_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_"
+
+
+
+---
+
+## **Typer**, the FastAPI of CLIs
+
+
+
+If you are building a CLI app to be used in the terminal instead of a web API, check out **Typer**.
+
+**Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀
+
+## Requirements
+
+Python 3.6+
+
+FastAPI stands on the shoulders of giants:
+
+- Starlette for the web parts.
+- Pydantic for the data parts.
+
+## Installation
+
+
+
+```console
+$ pip install fastapi
+
+---> 100%
+```
+
+
+
+You will also need an ASGI server, for production such as Uvicorn or Hypercorn.
+
+
+
+```console
+$ pip install uvicorn
+
+---> 100%
+```
+
+
+
+## Example
+
+### Create it
+
+- Create a file `main.py` with:
+
+```Python
+from fastapi import FastAPI
+
+app = FastAPI()
+
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+def read_item(item_id: int, q: str = None):
+ return {"item_id": item_id, "q": q}
+```
+
+
+Or use async def...
+
+If your code uses `async` / `await`, use `async def`:
+
+```Python hl_lines="7 12"
+from fastapi import FastAPI
+
+app = FastAPI()
+
+
+@app.get("/")
+async def read_root():
+ return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+async def read_item(item_id: int, q: str = None):
+ return {"item_id": item_id, "q": q}
+```
+
+**Note**:
+
+If you don't know, check the _"In a hurry?"_ section about `async` and `await` in the docs.
+
+
+
+### Run it
+
+Run the server with:
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+INFO: Started reloader process [28720]
+INFO: Started server process [28722]
+INFO: Waiting for application startup.
+INFO: Application startup complete.
+```
+
+
+
+
+About the command uvicorn main:app --reload...
+
+The command `uvicorn main:app` refers to:
+
+- `main`: the file `main.py` (the Python "module").
+- `app`: the object created inside of `main.py` with the line `app = FastAPI()`.
+- `--reload`: make the server restart after code changes. Only do this for development.
+
+
+
+### Check it
+
+Open your browser at http://127.0.0.1:8000/items/5?q=somequery.
+
+You will see the JSON response as:
+
+```JSON
+{"item_id": 5, "q": "somequery"}
+```
+
+You already created an API that:
+
+- Receives HTTP requests in the _paths_ `/` and `/items/{item_id}`.
+- Both _paths_ take `GET` operations (also known as HTTP _methods_).
+- The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`.
+- The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`.
+
+### Interactive API docs
+
+Now go to http://127.0.0.1:8000/docs.
+
+You will see the automatic interactive API documentation (provided by Swagger UI):
+
+
+
+### Alternative API docs
+
+And now, go to http://127.0.0.1:8000/redoc.
+
+You will see the alternative automatic documentation (provided by ReDoc):
+
+
+
+## Example upgrade
+
+Now modify the file `main.py` to receive a body from a `PUT` request.
+
+Declare the body using standard Python types, thanks to Pydantic.
+
+```Python hl_lines="2 7 8 9 10 23 24 25"
+from fastapi import FastAPI
+from pydantic import BaseModel
+
+app = FastAPI()
+
+
+class Item(BaseModel):
+ name: str
+ price: float
+ is_offer: bool = None
+
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+def read_item(item_id: int, q: str = None):
+ return {"item_id": item_id, "q": q}
+
+
+@app.put("/items/{item_id}")
+def update_item(item_id: int, item: Item):
+ return {"item_name": item.name, "item_id": item_id}
+```
+
+The server should reload automatically (because you added `--reload` to the `uvicorn` command above).
+
+### Interactive API docs upgrade
+
+Now go to http://127.0.0.1:8000/docs.
+
+- The interactive API documentation will be automatically updated, including the new body:
+
+
+
+- Click on the button "Try it out", it allows you to fill the parameters and directly interact with the API:
+
+
+
+- Then click on the "Execute" button, the user interface will communicate with your API, send the parameters, get the results and show them on the screen:
+
+
+
+### Alternative API docs upgrade
+
+And now, go to http://127.0.0.1:8000/redoc.
+
+- The alternative documentation will also reflect the new query parameter and body:
+
+
+
+### Recap
+
+In summary, you declare **once** the types of parameters, body, etc. as function parameters.
+
+You do that with standard modern Python types.
+
+You don't have to learn a new syntax, the methods or classes of a specific library, etc.
+
+Just standard **Python 3.6+**.
+
+For example, for an `int`:
+
+```Python
+item_id: int
+```
+
+or for a more complex `Item` model:
+
+```Python
+item: Item
+```
+
+...and with that single declaration you get:
+
+- Editor support, including:
+ - Completion.
+ - Type checks.
+- Validation of data:
+ - Automatic and clear errors when the data is invalid.
+ - Validation even for deeply nested JSON objects.
+- Conversion of input data: coming from the network to Python data and types. Reading from:
+ - JSON.
+ - Path parameters.
+ - Query parameters.
+ - Cookies.
+ - Headers.
+ - Forms.
+ - Files.
+- Conversion of output data: converting from Python data and types to network data (as JSON):
+ - Convert Python types (`str`, `int`, `float`, `bool`, `list`, etc).
+ - `datetime` objects.
+ - `UUID` objects.
+ - Database models.
+ - ...and many more.
+- Automatic interactive API documentation, including 2 alternative user interfaces:
+ - Swagger UI.
+ - ReDoc.
+
+---
+
+Coming back to the previous code example, **FastAPI** will:
+
+- Validate that there is an `item_id` in the path for `GET` and `PUT` requests.
+- Validate that the `item_id` is of type `int` for `GET` and `PUT` requests.
+ - If it is not, the client will see a useful, clear error.
+- Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests.
+ - As the `q` parameter is declared with `= None`, it is optional.
+ - Without the `None` it would be required (as is the body in the case with `PUT`).
+- For `PUT` requests to `/items/{item_id}`, Read the body as JSON:
+ - Check that it has a required attribute `name` that should be a `str`.
+ - Check that it has a required attribute `price` that has to be a `float`.
+ - Check that it has an optional attribute `is_offer`, that should be a `bool`, if present.
+ - All this would also work for deeply nested JSON objects.
+- Convert from and to JSON automatically.
+- Document everything with OpenAPI, that can be used by:
+ - Interactive documentation systems.
+ - Automatic client code generation systems, for many languages.
+- Provide 2 interactive documentation web interfaces directly.
+
+---
+
+We just scratched the surface, but you already get the idea of how it all works.
+
+Try changing the line with:
+
+```Python
+ return {"item_name": item.name, "item_id": item_id}
+```
+
+...from:
+
+```Python
+ ... "item_name": item.name ...
+```
+
+...to:
+
+```Python
+ ... "item_price": item.price ...
+```
+
+...and see how your editor will auto-complete the attributes and know their types:
+
+
+
+For a more complete example including more features, see the Tutorial - User Guide.
+
+**Spoiler alert**: the tutorial - user guide includes:
+
+- Declaration of **parameters** from other different places as: **headers**, **cookies**, **form fields** and **files**.
+- How to set **validation constraints** as `maximum_length` or `regex`.
+- A very powerful and easy to use **Dependency Injection** system.
+- Security and authentication, including support for **OAuth2** with **JWT tokens** and **HTTP Basic** auth.
+- More advanced (but equally easy) techniques for declaring **deeply nested JSON models** (thanks to Pydantic).
+- Many extra features (thanks to Starlette) as:
+ - **WebSockets**
+ - **GraphQL**
+ - extremely easy tests based on `requests` and `pytest`
+ - **CORS**
+ - **Cookie Sessions**
+ - ...and more.
+
+## Performance
+
+Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as one of the fastest Python frameworks available, only below Starlette and Uvicorn themselves (used internally by FastAPI). (\*)
+
+To understand more about it, see the section Benchmarks.
+
+## Optional Dependencies
+
+Used by Pydantic:
+
+- ujson - for faster JSON "parsing".
+- email_validator - for email validation.
+
+Used by Starlette:
+
+- requests - Required if you want to use the `TestClient`.
+- aiofiles - Required if you want to use `FileResponse` or `StaticFiles`.
+- jinja2 - Required if you want to use the default template configuration.
+- python-multipart - Required if you want to support form "parsing", with `request.form()`.
+- itsdangerous - Required for `SessionMiddleware` support.
+- pyyaml - Required for Starlette's `SchemaGenerator` support (you probably don't need it with FastAPI).
+- graphene - Required for `GraphQLApp` support.
+- ujson - Required if you want to use `UJSONResponse`.
+
+Used by FastAPI / Starlette:
+
+- uvicorn - for the server that loads and serves your application.
+- orjson - Required if you want to use `ORJSONResponse`.
+
+You can install all of these with `pip install fastapi[all]`.
+
+## License
+
+This project is licensed under the terms of the MIT license.
diff --git a/docs/ja/mkdocs.yml b/docs/ja/mkdocs.yml
new file mode 100644
index 000000000..8f55ea67c
--- /dev/null
+++ b/docs/ja/mkdocs.yml
@@ -0,0 +1,66 @@
+site_name: FastAPI
+site_description: FastAPI framework, high performance, easy to learn, fast to code, ready for production
+site_url: https://fastapi.tiangolo.com/ja/
+theme:
+ name: material
+ palette:
+ primary: teal
+ accent: amber
+ icon:
+ repo: fontawesome/brands/github-alt
+ logo: https://fastapi.tiangolo.com/img/icon-white.svg
+ favicon: https://fastapi.tiangolo.com/img/favicon.png
+ language: ja
+repo_name: tiangolo/fastapi
+repo_url: https://github.com/tiangolo/fastapi
+edit_uri: ''
+google_analytics:
+- UA-133183413-1
+- auto
+nav:
+- FastAPI: index.md
+- Languages:
+ - en: /
+ - es: /es/
+ - ja: /ja/
+ - pt: /pt/
+ - zh: /zh/
+markdown_extensions:
+- toc:
+ permalink: true
+- markdown.extensions.codehilite:
+ guess_lang: false
+- markdown_include.include:
+ base_path: docs
+- admonition
+- codehilite
+- extra
+- pymdownx.superfences:
+ custom_fences:
+ - name: mermaid
+ class: mermaid
+ format: !!python/name:pymdownx.superfences.fence_div_format ''
+- pymdownx.tabbed
+extra:
+ social:
+ - icon: fontawesome/brands/github-alt
+ link: https://github.com/tiangolo/typer
+ - icon: fontawesome/brands/twitter
+ link: https://twitter.com/tiangolo
+ - icon: fontawesome/brands/linkedin
+ link: https://www.linkedin.com/in/tiangolo
+ - icon: fontawesome/brands/dev
+ link: https://dev.to/tiangolo
+ - icon: fontawesome/brands/medium
+ link: https://medium.com/@tiangolo
+ - icon: fontawesome/solid/globe
+ link: https://tiangolo.com
+extra_css:
+- https://fastapi.tiangolo.com/css/termynal.css
+- https://fastapi.tiangolo.com/css/custom.css
+extra_javascript:
+- https://unpkg.com/mermaid@8.4.6/dist/mermaid.min.js
+- https://fastapi.tiangolo.com/js/termynal.js
+- https://fastapi.tiangolo.com/js/custom.js
+- https://fastapi.tiangolo.com/js/chat.js
+- https://sidecar.gitter.im/dist/sidecar.v1.js
diff --git a/docs/pt/mkdocs.yml b/docs/pt/mkdocs.yml
index 105f7e6f3..d54ac1c9d 100644
--- a/docs/pt/mkdocs.yml
+++ b/docs/pt/mkdocs.yml
@@ -22,6 +22,7 @@ nav:
- Languages:
- en: /
- es: /es/
+ - ja: /ja/
- pt: /pt/
- zh: /zh/
- features.md
diff --git a/docs/zh/mkdocs.yml b/docs/zh/mkdocs.yml
index 75a7e9707..26b7433c4 100644
--- a/docs/zh/mkdocs.yml
+++ b/docs/zh/mkdocs.yml
@@ -22,6 +22,7 @@ nav:
- Languages:
- en: /
- es: /es/
+ - ja: /ja/
- pt: /pt/
- zh: /zh/
- features.md