FastAPI로 작업할 때 Swagger UI의 중개 없이 JSON 데이터를 게시하는 것이 가능합니다. 이를 달성하는 방법은 다음과 같습니다.
Fetch API와 같은 JavaScript 기반 인터페이스를 사용하여 데이터를 JSON 형식으로 보냅니다. 예는 다음과 같습니다.
<code class="javascript">var data = { name: "foo", roll: 1 } fetch('/', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify(data) }).then(resp => { return resp.text(); }).then(data => { // Handle the response });</code>
또는 Jinja2 템플릿과 HTML 양식을 활용하여 데이터를 제출할 수 있습니다. 방법은 다음과 같습니다.
<code class="python">from fastapi import FastAPI, Request from fastapi.templating import Jinja2Templates from pydantic import BaseModel app = FastAPI() templates = Jinja2Templates(directory="templates") class Item(BaseModel): name: str roll: int @app.post("/") async def create_item(item: Item): return item @app.get("/") async def index(request: Request): return templates.TemplateResponse("index.html", {"request": request})</code>
<code class="html"><form method="post"> <input type="text" name="name" value="foo"> <input type="number" name="roll" value="1"> <input type="submit" value="Submit"> </form> <div id="responseArea"></div> <script> document.querySelector('form').addEventListener('submit', (event) => { event.preventDefault(); var data = new FormData(event.target); fetch('/', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify(Object.fromEntries(data)) }).then(resp => { return resp.text(); }).then(data => { document.getElementById("responseArea").innerHTML = data; }).catch(error => { console.error(error); }); }); </script></code>
이러한 기술을 사용하면 의존하지 않고도 JSON 데이터를 FastAPI 백엔드에 편리하게 게시할 수 있습니다. Swagger UI 인터페이스에서
위 내용은 Swagger UI 없이 FastAPI에 JSON 데이터를 제출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!