apiType

apiType

ICE의 API 유형은 다음과 같이 구분한다.

service

  • FrontOffice에서 사용하는 API

  • Path : svc

{{protocol}}://{{hostname}}:{{port}}/svc/{{apiCategory}}/{{api}}?_siteId=dxp

  • _siteId 항상 필수

  • 자동 생성 API 사용 불가능. 설정 API 만 사용 가능.

  • 인증 : Customer의 세션을 사용한다.

GET {{protocol}}://{{hostname}}:{{port}}/auth/svc/jwt?_siteId=dxp

 

admin

  • Admin 사용자용 BackOffice를 위한 API

  • Path : adm

{{protocol}}://{{hostname}}:{{port}}/adm/{{nodeType}}/{{event}}

{{protocol}}://{{hostname}}:{{port}}/adm/{{apiCategory}}/{{api}}

  • 인증 : 반드시 로그인된 Admin 사용자만 사용 가능

GET {{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt

POST {{protocol}}://{{hostname}}:{{port}}/adm/signIn

 

manager

  • Manger 사용자용 BackOffice를 위한 API

  • Path : mng

{{protocol}}://{{hostname}}:{{port}}/mng/{{nodeType}}/{{event}}

{{protocol}}://{{hostname}}:{{port}}/mng/{{apiCategory}}/{{api}}

  • 인증 : 반드시 로그인된 Manager 사용자만 사용 가능

GET {{protocol}}://{{hostname}}:{{port}}/auth/mng/jwt

POST {{protocol}}://{{hostname}}:{{port}}/mng/signIn

 

external

  • 외부 또는 레거시 시스템과 연동을 위해서 사용하는 API

  • Path : ext

{{protocol}}://{{hostname}}:{{port}}/ext/{{nodeType}}/{{event}}

{{protocol}}://{{hostname}}:{{port}}/ext/{{apiCategory}}/{{api}}

  • 인증 : API 키를 통해서 인증

 

internal

  • ICE 내부 서비스간 연동을 위해서 사용하는 API

  • Path : int

{{protocol}}://{{hostname}}:{{port}}/int/{{nodeType}}/{{event}}

{{protocol}}://{{hostname}}:{{port}}/int/{{apiCategory}}/{{api}}

  • 인증 : 클러스터에 등록된 서버들만 통신 가능

 

open

  • 오픈 API에 사용

  • Path : api

{{protocol}}://{{hostname}}:{{port}}/api/{{nodeType}}/{{event}}

{{protocol}}://{{hostname}}:{{port}}/api/{{apiCategory}}/{{api}}

  • 자동 생성 API 사용 불가능. 설정 API 만 사용 가능.

  • 인증 : API Key를 이용한 인증 사용, 요구사항에 따라서 인증 방식 확장이 가능(OAuth 등)

{     "timestamp": "2020-10-20T02:45:39.969+0000",     "status": 400,     "error": "Bad Request",     "message": "Required String parameter 'apiKey' is not present",     "path": "/api/testEvent/list" }
{     "result": "200",     "resultMessage": "SUCCESS",     "totalCount": 0,     "totalTypeCount": 0,     "resultCount": 0,     "items": [] }

 

 

apiType은 apiCategoryapi 에 각각 설정 가능하다.

 

  • apiCategory 설정되어있고 api에 설정 안되어있으면 하위 api 는 apiCategory의 apiType을 따른다.

  • apiCategory와 하위 api에 서로다른 apiType이 설정되어 있는 경우 api 는 자신의 apiType을 따른다.

 

{ "typeId": "apiCategory", "id": "product", "categoryName": "product API", "dateFormat": "yyyy-MM-dd HH:mm:ss", "fileUrlFormat": { "default": "{{:getEnvValue('core.cluster.api-url-prefix')}}" }, "commonParameters": [ ], "commonResponse": [ ] }
{ "typeId": "api", "category": "product", "apiId": "list", "apiName": "Product List", "apiType": "service", "method": "GET", "parameters": [ ], "config": { ... } }

{{protocol}}://{{hostname}}:{{port}}/svc/product/list?_siteId=dxp

{ "typeId": "apiCategory", "id": "product", "categoryName": "product API", "apiType": "service", "dateFormat": "yyyy-MM-dd HH:mm:ss", "fileUrlFormat": { "default": "{{:getEnvValue('core.cluster.api-url-prefix')}}" }, "commonParameters": [ ], "commonResponse": [ ] }
{ "typeId": "api", "category": "product", "apiId": "list", "apiName": "Product List", "apiType": "", "method": "GET", "parameters": [ ], "config": { ... } }

{{protocol}}://{{hostname}}:{{port}}/svc/product/list?_siteId=dxp

{ "typeId": "apiCategory", "id": "product", "categoryName": "product API", "apiType": "service", "dateFormat": "yyyy-MM-dd HH:mm:ss", "fileUrlFormat": { "default": "{{:getEnvValue('core.cluster.api-url-prefix')}}" }, "commonParameters": [ ], "commonResponse": [ ] }
{ "typeId": "api", "category": "product", "apiId": "list", "apiName": "Product List", "apiType": "admin", "method": "GET", "parameters": [ ], "config": { ... } }

{{protocol}}://{{hostname}}:{{port}}/adm/product/list