Skip to content

API Documents

parkjihon edited this page Jan 19, 2022 · 31 revisions

API 개요

카테고리 작업 상태 type path 설명 사용중?
사용자 POST /users 내 정보 생성(닉네임, 프로필URI, 메일주소 등) + 내 보유 NFTs
사용자 Updated GET /users/<id> 마이 페이지 (사용자 + 컬랙션s + 모든 NFTs) 대여
사용자 GET /users/<id>?tab=mint 마이 페이지 (+ 내가 민트한 NFTs)
사용자 GET /users/<id>?tab=selling 마이 페이지 (+ 판매 중 NFTs)
사용자 GET /users/<id>?tab=history 마이 페이지 (+ 내 거래내역)
사용자 GET /users/<id>?tab=cancelled 마이 페이지 (+ 내 거래취소내역)
사용자 NEW GET /users/<id>?tab=lend 마이 페이지 (+ 대여 등록한 NFTs) 대여
사용자 NEW GET /users/<id>?tab=rent 마이 페이지 (+ 대여 중인) 대여
사용자 NEW GET /users/<id>?tab=rent-history 마이 페이지 (+ 내 대여내역) 대여
사용자 POST /users/<id> 내 정보 수정
collections GET /collections 컬랙션 리스트
search GET /collections?search= 컬랙션 검색
collections POST /collections 컬랙션 생성 (metadata 정보 회신)
collections Updated GET /collections/<symbol> 컬랙션 1개 상세 (+ 모든 NFTs)
collections NEW GET /collection/<symbol>?tab=history 컬랙션 1개 상세 (+ 거래 내역)
collections POST /collections/<collection> 컬랙션 생성 후 CA
NFT POST /assets NFTs 생성 (메타데이터 정보 회신)
NFT Updated GET /assets/<collection>/<id> NFT 1개 상세
main NEW GET /main/recentNFTs 최근 생성된 NFT 5개
main NEW GET /main/recentTrades 최근 Selling Trades 5개
default: 최근 거래 기준 조회
?sort=price-high: 높은 가격순
?status=complete: 완료된 거래 기준 조회
main NEW GET /trades/topUser 가장 많은 NFT 보유 회원 5명

API (optional)

카테고리 작업 상태 type path 설명 사용중?
사용자 GET /users/<id>/collections 내 보유 컬랙션 => /users/<id> 로 대체 opt
사용자 GET /users/<id>/assets 내 보유 NFTs => /users/<id> 로 대체 opt
metadata GET /metadata/collection/<symbol> 컬랙션 URI opt
metadata POST /metadata/collection/<symbol> 컬랙션 metadata 수정 opt
metadata GET /metadata/nft/<tokenid> NFT URI opt
metadata POST /metadata/nft/<tokenid> NFT metadata 수정 opt
search GET /collections?searchname= 검색 창 관련 검색어 opt
collections GET /collection/<symbol>?tab=selling 컬랙션 1개 (+ 판매 중 NFT) opt
collections NEW GET /collections/<symbol>?tab=lend 컬랙션 1개 (+ 대여 가능 NFT) opt
collections NEW GET /collections/<symbol>?tab=rent 컬랙션 1개 (+ 대여 중 NFT) opt
NFT GET /assets NFTs 리스트 opt
trade GET /trades 기본 (판매 중 + 완료 + 취소) opt
trade GET /trades/selling 모든 NFTs 판매 중 opt
trade GET /trades/history 모든 NFTs 거래완료 내역 opt
rent NEW GET /rents 기본 (대여등록된 + 대여사용중인 + 완료) opt
rent NEW GET /rents/lend 대여 등록된 opt
rent NEW GET /rents/rent 대여 사용중인 opt
rent NEW GET /rents/history 대여종료 내역 opt

API Documents

내 정보 생성

  • URL

    /users

  • Method:

    POST

  • URL Params

    None

  • Data Params

    name type required
    address string true
    imageURL string false
    name string true
    email string true
  • Success Response:

    • Code: 200
      data: address, imageURL, name, email

      example

      {
          "message": "ok",
          "data": {
              "address": "0x07E6cB26B49EB545eF33d6bB4aFCE6e7Bf5D05Eb",
              "imageURL": "https://i.pinimg.com/736x/15/4e/0f/154e0f6aefc951c84200082e5619afa5.jpg",
              "name": "minjeong",
              "email": "kysys0326@naver.com"
          }
      }
      
  • Error Response:

    • Code: 400 Bad Request
      Content: { message : "이미 존재하는 address입니다" }

    OR

    • Code: 400 Bad Request
      Content: { "message": "address, name, email이 정확히 기입되었는지 확인해 주세요"}

마이 페이지

  • URL

    /users/:id

  • Method:

    GET

  • URL Params

    Required:

    address=[string]

  • Data Params

    None

  • Success Response:

    • Code: 200
      data: id, address, imageURL, name, email, createdAt, updatedAt

      example

      {
          "message": "ok",
          "data": {
              "id": 15,
              "address": "0x07E6cB26B49EB545eF33d6bB4aFCE6e7Bf5D05Eb",
              "imageURL": "https://i.pinimg.com/736x/15/4e/0f/154e0f6aefc951c84200082e5619afa5.jpg",
              "name": "minjeong",
              "email": "kysys0326@naver.com",
              "createdAt": "2022-01-12T04:20:47.000Z",
              "updatedAt": "2022-01-12T04:20:47.000Z"
          }
      }
      
  • Error Response:

    • Code: 400 Bad Request
      Content: { message : "address가 일치하는 user가 없습니다" }

내 정보 수정

  • URL

    /users/:address

  • Method:

    POST

  • URL Params

    Required:

    address=[string]

  • Data Params

    name type required
    address string false
    imageURL string false
    name string false
    email string false
  • Success Response:

    • Code: 200
      data: address, name, imageURL, email

      example

      {
      "message": "ok",
      "data": {
          "address": "0x07E6cB26B49EB545eF33d6bB4aFCE6e7Bf5D05Eb",
          "name": "minjeong2",
          "imageURL": "https://i.pinimg.com/736x/15/4e/0f/154e0f6aefc951c84200082e5619afa5.jpg",
          "email": "kysys0326@naver.com"
      }
      
  • Error Response:

    • Code: 400 Bad Request
      Content: {"message": "address가 일치하는 user가 없습니다"}

내 보유 Collection

  • URL

    /users/:id/collections

  • Method:

    GET

  • URL Params

    Required:

    address=[string]

  • Data Params

    None

  • Success Response:

    • Code: 200
      data: Collections data

      example

      {
          "message": "ok",
          "data": [
              {
                  "id": 1,
                  "is_created": true,
                  "contractAddress": "0x9Bbe533bb269DC4121D36e6B526939734E97bb8D",
                  "ownerAddress": "0x07E6cB26B49EB545eF33d6bB4aFBE6e7Bf5D05Eb",
                  "name": "Aether",
                  "symbol": "Aether",
                  "description": "...",
                  "image_url": "...",
                  "banner_url": "...",
                  "createdAt": "2022-01-10T09:26:34.000Z",
                  "updatedAt": "2022-01-10T09:26:36.000Z"
              }...
              ]
      }
      
  • Error Response:

    • Code: 400 Bad Request
      Content: { message : "address가 일치하는 user가 없습니다" }

내 보유 NFT

  • URL

    /users/:id/assets

  • Method:

    GET

  • URL Params

    Required:

    address=[string]

  • Data Params

    None

  • Success Response:

    • Code: 200
      data: NFTs data

      example

      {
          "message": "ok",
          "data": [
                  {
                      "id": 470,
                      "is_minted": false,
                      "token_ids": null,
                      "ownerAddress": "0x0bEAB55b6268B96d830d18F0b32EfB917123d296",
                      "creatorAddress": null,
                      "tokenURI": null,
                      "contractAddress": "0xD514bD8d9b4759dA32Db77052DcbE33D71E17BDA",
                      "name": "LAND (-190, -139)",
                      "description": "...",
                      "traits": "[{...}]",
                      "imageURI": "..."
                      "createdAt": "2022-01-12T05:18:36.000Z",
                      "updatedAt": "2022-01-12T05:18:36.000Z"
                  }...
                  ]
      }
      
  • Error Response:

    • Code: 400 Bad Request
      Content: { message : "address가 일치하는 user가 없습니다" }

컬랙션 URI


Collection List

  • URL

    /collections

  • Method:

    GET

  • URL Params

    Required:

    None

  • Data Params

    None

  • Success Response:

    • Code: 200
      data: 전체 Collection data

      example

      {
          "message": "ok",
          "data": [
              {
                  "id": 1,
                  "is_created": true,
                  "contractAddress": "0x9Bbe533bb269DC4121D36e6B526939734E97bb8D",
                  "ownerAddress": "0x07E6cB26B49EB545eF33d6bB4aFBE6e7Bf5D05Eb",
                  "name": "Aether",
                  "symbol": "Aether",
                  "description": "...",
                  "image_url": "...",
                  "banner_url": "...",
                  "createdAt": "2022-01-10T09:26:34.000Z",
                  "updatedAt": "2022-01-10T09:26:36.000Z"
              },...
              ]
      }
      

NFT List

  • URL

    /assets

  • Method:

    GET

  • URL Params

    Required:

    None

  • Data Params

    None

  • Success Response:

    • Code: 200
      data: 전체 NFT data

      example

      {
          "message": "ok",
          "data": [
              {
                  "id": 1,
                  "is_minted": false,
                  "token_ids": null,
                  "ownerAddress": "0x0bEAB55b6268B96d830d18F0b32EfB917123d296",
                  "creatorAddress": null,
                  "tokenURI": null,
                  "contractAddress": "0xD514bD8d9b4759dA32Db77052DcbE33D71E17BDA",
                  "name": "LAND (-190, -139)",
                  "description": "...",
                  "traits": "[{...}]",
                  "imageURI": "..."
                  "createdAt": "2022-01-12T05:18:36.000Z",
                  "updatedAt": "2022-01-12T05:18:36.000Z"
              },...]
      }
      

NFT 1개 상세

  • URL /assets/:collection_symbol/:token_ids

  • Method:

    GET

  • URL Params

    Required:

    symbol=[string]

    token_ids=[integer]

  • Data Params

    None

  • Success Response:

    • Code: 200
      data: 해당 NFT 및 Collection data

      example

      {
          "message": "ok",
          "data": [
              {
                  "id": 1,
                  "is_minted": false,
                  "token_ids": 1,
                  "ownerAddress": "0x0bEAB55b6268B96d830d18F0b32EfB917123d296",
                  "creatorAddress": null,
                  "tokenURI": null,
                  "contractAddress": "0xD514bD8d9b4759dA32Db77052DcbE33D71E17BDA",
                  "name": "LAND (-190, -139)",
                  "description": "...",
                  "traits": "[{...}]",
                  "imageURI": "..."
                  "createdAt": "2022-01-12T05:18:36.000Z",
                  "updatedAt": "2022-01-12T05:18:36.000Z"
                  "collection": {
                      "id": 10,
                      "is_created": true,
                      ...
                      }
              },...]
      }
      
  • Error Response:

    • Code: 400 Bad Request
      Content: { message : "token_ids가 일치하는 NFT가 없습니다" }

      OR

    • Code: 400 Bad Request
      Content: ` OR

    • Code: 400 Bad Request
      Content: {"message": "symbol이 일치하는 Collection이 없습니다"}

Clone this wiki locally