본문으로 건너뛰기
버전: 1.2.0-1.3.0

기본 기능 - 프록시

프록시(proxy) 기능을 이용하면, 파트너사의 서비스가 사용자의 DOSI 계정에 있는 디지털 아이템을 변경(실링, 언실링, 판매 중인 디지털 아이템 판매 취소 등)하는 관리 권한을 위임받을 수 있습니다.

연결 정보

개발 환경DOSI SDK base URI
운영 환경https://sdk-api.dosi.world

사용 절차

사용자 DOSI 계정의 디지털 아이템 관리 권한을 위임(프록시 설정)받는 절차는 다음과 같습니다.

  1. 프록시 설정 요청 엔드포인트를 호출하세요.
  2. 1에서 수신한 응답의 redirectUri로 이동하세요.
    • 이 주소는 사용자가 DOSI 계정을 인증할 수 있도록 PIN 코드를 입력하는 화면을 보여줍니다.
    • 사용자가 PIN 코드를 입력하면, 자동으로 프록시 설정 요청 엔드포인트 호출할 때 body 파라미터로 입력한 redirectUri로 이동합니다.
  3. 1에서 수신한 응답의 sessionToken을 path 파라미터로 사용해 프록시 설정 요청 커밋 엔드포인트를 호출하세요.

위 단계를 모두 수행하면 프록시 설정이 완료됩니다.

프록시는 계정당 한 번만 설정하면 됩니다.

프록시(proxy) 상태 조회

사용자 DOSI 계정이 디지털 아이템 관리 권한을 위임(프록시 설정)했는지 조회합니다.

GET {DOSI SDK base URI}/v1/wallets/{walletAddress}/contracts/{contractId}/proxy

Path

Name
TypeDescription
walletAddressstring

사용자 DOSI 계정의 월렛 주소. 사용자 확장 프로필 조회 엔드포인트로 획득할 수 있습니다.

contractIdstring

프록시를 설정할 서비스의 contract ID

Query

None

Body

None

Headers
  • Authorization: Basic <'DOSI 채널 ID:시크릿'을 Base64로 인코딩한 값>
  • Content-Type: application/json

Request examples

curl --location --request GET 'https://sdk-api.dosi.world/v1/wallets/link1xx...zzz/contracts/ab...cd/proxy' \
--header 'Authorization: Basic xxxxxxxx' \
--header 'Content-Type: application/json'

프록시(proxy) 설정 요청

사용자 DOSI 계정에 프록시를 설정하도록 요청합니다.

POST {DOSI SDK base URI}/v1/wallets/{walletAddress}/contracts/{contractId}/proxy

Path

Name
TypeDescription
walletAddressstring

사용자 DOSI 계정의 월렛 주소

contractIdstring

프록시를 설정할 서비스의 contract ID

Query

None

Body

Name
TypeDescription
Required
redirectUristring

사용자 인증 후 이동할 URI

Headers
  • Authorization: Basic <'DOSI 채널 ID:시크릿'을 Base64로 인코딩한 값>
  • Content-Type: application/json

Request examples

curl --request POST 'https://sdk-api.dosi.world/v1/wallets/link1xx...zzz/contracts/ab...cd/proxy' \
--header 'Authorization: Basic xxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"redirectUri": "https://....com/xxx"
}'

프록시(proxy) 설정 중 인증 상태 조회

사용자 DOSI 계정에 프록시를 설정하는 동안 사용자 인증 여부를 조회합니다.

GET {DOSI SDK base URI}/v1/proxy/requests/{sessionToken}

Path

Name
TypeDescription
sessionTokenstring

프록시 설정 요청 호출 후 받은 sessionToken

Query

None

Body

None

Headers
  • Authorization: Basic <'DOSI 채널 ID:시크릿'을 Base64로 인코딩한 값>
  • Content-Type: application/json

Request examples

curl --request GET 'https://sdk-api.dosi.world/v1/proxy/requests/xx...cc' \
--header 'Authorization: Basic xxxxxxxx' \
--header 'Content-Type: application/json'

프록시(proxy) 설정 요청 커밋

사용자 DOSI 계정에 프록시를 설정하는 작업을 커밋합니다.

POST {DOSI SDK base URI}/v1/proxy/requests/{sessionToken}/commit

Path

Name
TypeDescription
sessionTokenstring

프록시 설정 요청 호출 후 받은 sessionToken

Query

None

Body

Name
TypeDescription
Required
txIdstring

API 요청을 추적할 용도로 전달하는 식별자. RFC 9562에서 정의한 UUID 문자열(대소문자를 구분 안 함)을 사용하세요.

식별자는 DOSI SDK 서버에 요청을 보낸 후 그 처리 결과를 트랜잭션으로 확인할 때 사용합니다. 식별자를 지정하지 않으면 DOSI SDK 서버가 식별자를 생성해 응답으로 전달합니다.

네트워크 장애 등의 문제로 서버 응답을 받지 못하더라도 처리 결과를 확인하고 싶으면 이 값을 지정하세요.

Headers
  • Authorization: Basic <'DOSI 채널 ID:시크릿'을 Base64로 인코딩한 값>
  • Content-Type: application/json

Request examples

curl --request POST 'https://sdk-api.dosi.world/v1/proxy/requests/xx...cc/commit' \
--header 'Authorization: Basic xxxxxxxx' \
--header 'Content-Type: application/json'