-
Notifications
You must be signed in to change notification settings - Fork 3
API DOC
HYXO edited this page Jan 13, 2023
·
9 revisions
[API DOC]
GET http://20.214.190.113:5050/users/:userId
- userId를 통해 특정 단일 유저 정보를 조회한다.
- 응답예시

GET http://20.214.190.113:5050/users/:userId/balance
- userId의 토큰과 이더 잔액을 조회한다.
- 응답예시

GET http://20.214.190.113:5050/users/:userId/nfts/?offset={offset}&limit={limit}
- userId가 소유한 모든 nft 정보를 조회한다.
- pagenation을 고려하여 offset과 limit 값을 query로 받고, 둘 중 하나라도 없을 경우 전체 데이터를 응답값으로 보낸다.
- 입력예시

- 응답예시

GET http://20.214.190.113:5050/users/:userId/posts/?offset={offset}&limit={limit}
- userId가 작성한 모든 post 정보를 조회한다.
- pagenation을 고려하여 offset과 limit값을 query로 받고, 둘 중 하나라도 없을 경우 전체 데이터를 응답값으로 보낸다.
- 입력예시(포스트맨 기준)

- 응답예시

POST http://20.214.190.113:5050/users/join
- 회원가입을 한다.
- 내부 동작은 다음과 같다.
- db에 email이 존재하는지 검사한다.
- web3 계정을 생성한다.
- 웰컴 eth, erc20, nft를 지급받는다.
- db를 갱신한다.
- 갱신된 db 결과를 응답으로 준다.
- 입력 예시
{
"email":"user3Email@test.com",
"password":"user3password",
"nickname":"user3nickname"
}
- 응답 예시
{
"id": 3,
"email": "user3Email@test.com",
"password": "user3password",
"wallet_account": "0xF4f6a43FEB947606DB4eaAA131328994Cf3b029b",
"eth": "10000000000000000",
"login_provider": "local",
"nickname": "user3nickname",
"erc20": "10000000000000000",
"wallet_pk": "0xb1a4db77c0b02ce9702231529344e4188cd45336d013b3db60cd959aeb1e1d7b",
"updatedAt": "2023-01-07T14:59:06.055Z",
"createdAt": "2023-01-07T14:59:05.772Z"
}
POST http://20.214.190.113:5050/users/login
- 로그인 한다.
- 로그인을 호출하면 응답으로 accessToken을 돌려준다.
- 쿠키에는 refreshToken을 보내준다.

- 받은 accessToken을 헤더의 ‘Authorization’에 삽입해서 요청하면 서버는 토큰을 파싱해서 인증해준다.
- 쿠키에 저장된 refreshToken이 있으면 새로운 accessToken을 발행해준다.
- 응답예시

- 유저 정보 수정. 비밀번호와 닉네임만 변경 가능.
- 유저 id 값을 req.params 로 넣고, req.body에 password 와 nickname 입력.
- 네이버 로그인의 경우 닉네임 변경만 가능하며, 로컬 로그인의 경우 비밀번호와 닉네임 모두 혹은 둘 중 하나만 변경도 가능하다.
- 권한 인증 과정이 있기 때문에 req.headers.authorization 에 액세스 토큰이 보내주어야 한다.
- 입력예시(포스트맨 기준)

- 응답예시

- 🏠 Home
- 💾 Product
- 🧩 Function
- ❓ Requirement
- 🗄 DB Schema
- 📋 API DOC
- 🧷 Architecture
- ⭐️ Tech Stack
- 📱 Go Demo