Express, typeORM 및 Postgres를 사용한 예약 Typescript API

Typescript , Express , TypeORMPostgres 으로 간단한 예약 API 시도.
JestSupertest으로 테스트.

코드



Project repo

클론 프로젝트



git clone [email protected]:ihaback/booking-api.git

프로젝트 설정



npm install

전제 조건


  • 노드
  • 도커

  • 프로젝트 설정



    npm install
    

    .env.example을 env로 이름 바꾸기



    빌드 버전을 로컬에서 테스트하려면 NODE_ENVprod로 변경하십시오.

    NODE_ENV=dev
    DB_TYPE=postgres
    DB_HOST=localhost
    DB_PORT=5432
    DB_USERNAME=postgres
    DB_PASSWORD=postgres
    DB_INSTANCE=postgres
    DB_SYNCHRONIZE=true
    JWT_SECRET=secret
    


    Postgres DB용 docker compose 실행




    docker-compose up
    


    초기 데이터로 개발 서버 및 시드 데이터베이스 시작




    npm run dev
    


    jest 및 supertest를 사용하여 Postgres DB에 대한 테스트 실행




    npm run test
    


    문제 감지를 위한 Lint 코드




    npm run lint
    


    생산을 위한 빌드 코드


    NODE_ENVprod로 설정되어 있는지 확인하십시오.

    npm run build
    


    후속 요청을 위해 jwt 토큰을 받으려면 로그인하십시오.




    POST http://localhost:3000/api/auth/login
    



    {
      "username": "admin",
      "password": "admin"
    }
    


    후속 요청에 대해 인증 헤더의 로그인 응답에서 토큰 사용




    generated-token
    


    예약 생성




    POST http://localhost:3000/api/bookings
    



    {
      "startDate": "2022-03-24 18:46:55.223294",
      "endDate": "2022-03-24 18:46:55.223294",
      "totalCostInCents": 100,
      "userId": 1, // id for user
    
      "destinationId": 1 // id for destination
    }
    


    모든 예약 받기




    GET http://localhost:3000/api/bookings
    


    단일 예약 받기




    GET http://localhost:3000/api/bookings/:id
    


    예약 업데이트




    PUT http://localhost:3000/api/bookings/:id
    



    {
      "startDate": "2022-03-24 18:46:55.223294",
      "endDate": "2022-03-24 18:46:55.223294",
      "totalCostInCents": 10000
    }
    


    예약 삭제




    DELETE http://localhost:3000/api/bookings/:id
    

    좋은 웹페이지 즐겨찾기