서버구현 221118

최민경·2022년 11월 18일
0

개발잡담

목록 보기
6/7

fastapi 링크:

https://fastapi.tiangolo.com/

프레임워크 vs 라이브러리

프레임워크: 어플리케이션 Flow(흐름)이 자체적으로 있어, 거기에 들어가서 사용함(예: 밀키트 제조)

라이브러리:개발자가 만든 클래스에서 호출하여 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식, 활용가능한 도구들의 집합(예: 마트 가서 장봐서 내 레시피대로 요리하기)

차이점: 제어의 흐름에 대한 주도성이 누구에게/어디에 있는가

'제어의 역전', 프레임워크가 코트를 주도하게 하여 개발자의 에러를 줄이는 목적

서버 기본 구조

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}

fastapi 다운

pip install fastapi
pip install "uvicorn[standard]"

unicorn서버로 fastapi를 실행해줌.

@app.get("/first/{id}") 
# get은 rest 통신 방식 중 하나, /는 기본주소를 뜻함, 뒤에 다른 텍스트를 추가하면, 주소창에도 /first라고 추가해줘야함

async def root(id:int): 
#매개변수 타입 지정 가능
#아래 코드를 실행
    return {"message": "Hello World", "id": id} 
    #프레임워크가 객체를 알아서 json로 만들어줌, return에는 무조건 문자형이 와야함(?)

fastapi 실행

uvicorn main:app --reload
선 실행 후 확인
reload는 테스트할 때만 하고, 실제 배포할 때는 안씀.

querystring주소 구조


?뒤에는 key=value(여러 개는 &로 이어줌)

요청 본문


postman 설정 방식
body 부분에는 json형식으로 입력

fastapi는 자동으로 문서를 만들어 줌

http://127.0.0.1:8000/docs

뒤에 docs를 치면 됨.

문서에는 request문 response문이 자동 정리됨.

http://127.0.0.1:8000/redoc

redoc는 다른 문법으로 정리되는 자동 문서

spring boot mvc모델

  • controller: 요청에 따른 응답 방식
    (DTO, 프론트)
  • service: brower에 출력될 방식
  • DAO: DATA ACESS OBJECT, 데이터베이스에서 데이터를 가져옴(요즘은 REPOSITORY로 설정 많이 함)

리액트 router를 활용한 github pages 배포

https://medium.com/@_diana_lee/react-react-router-%EC%A0%81%EC%9A%A9%ED%95%9C-react-%EC%95%B1%EC%9D%84-github-pages%EB%A1%9C-%EB%B0%B0%ED%8F%AC%ED%95%98%EB%8A%94-%EB%B2%95-5f6119c6a5d9

yarn add gh-pages까지 해준 다음

0개의 댓글