Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Current »

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

▪ service

  • FrontOffice에서 사용하는 API

  • Path : svc

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

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 Key를 이용한 인증 사용, 요구사항에 따라서 인증 방식 확장이 가능(OAuth 등)

 {{protocol}}://{{hostname}}:{{port}}/api/testEvent/list
{
    "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"
}
 {{protocol}}://{{hostname}}:{{port}}/api/testEvent/list?apiKey=W2!G*LgUu?5*!c*VubLVsfVyW42t$KHt
{
    "result": "200",
    "resultMessage": "SUCCESS",
    "totalCount": 0,
    "totalTypeCount": 0,
    "resultCount": 0,
    "items": []
}

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

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

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

 [apiCategory] apiType : null, [api] apiType : service
{
  "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

 [apiCategory] apiType : service, [api] apiType : null
{
  "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

 [apiCategory] apiType : service, [api] apiType : admin
{
  "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

  • No labels