GithubHelp home page GithubHelp logo

payhere-api's Introduction

payhere-api

실행 방법

git clone https://github.com/h0ngg0m/payhere-api.git

cd payhere-api

docker-compose up 

코드 스타일 일관성 유지

  • 코드 스타일 일관성 유지를 위해 black, isort, flake8를 사용했습니다.

로그인, 로그아웃

  • 로그인: Post /api/v1/auth/login
    • 로그인 (인증) 시, JWT (Access Token) 를 발급합니다. 이후 API 요청 시, JWT 를 Authorization 헤더에 담아서 요청하는 것으로 인가를 처리합니다.
    • 로그인 시 회원 (User 모델) 의 logout_flag 를 False 로 변경합니다. (이유는 아래 로그아웃 참고)
  • 로그아웃: Delete /api/v1/auth/logout
    • 로그인 시 발급되는 JWT 를 서버에서 간단하게 제어할 수 있는 방법은 없다고 판단하였고 따라서 서버에서 로그아웃을 제어하기 위해 logout_flag (회원의 로그아웃 여부를 나타내는 필드) 를 사용했습니다.
      • 로그아웃 시, 회원의 logout_flag 를 True 로 변경합니다.
    • logout_flag가 True인 상태로 권한이 필요한 API 요청 시, 401 Unauthorized 응답을 반환하고 로그인을 유도합니다.

상품 초성 검색

  • 상품 리스트 조회 Get /api/v1/products
  • 상품 이름에 대한 한글 초성 검색을 지원하기 위해 상품 생성, 수정시 사용자가 입력한 name 필드 값중 한글인 부분에서 초성을 추출하여 name_chosung DB 컬럼에 저장했습니다.
    • 이후 상품 리스트 조회 시, name_chosung 필드를 사용한 초성 검색, name 필드를 사용한 한글 검색을 지원합니다.

기타

  • API 명세서 위치: 도커 실행 후 http://localhost:8000/docs 에서 확인 가능합니다.
  • DB DDL 위치: /payhere-api/sql/ddl.sql

payhere-api's People

Contributors

h0ngg0m avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.