asapi로 데이터 요청 (v2)

업데이트 됨

asapiricloud API의 비동기 제어 메커니즘입니다. 사용자는 다음을 수행 할 수 있습니다.

  • 사용 권한이 부여 된 서비스 , 동작 및 끝점을 찾습니다.
  • 계정 등록, 등록 취소 및 계정 알아보기
  • 비동기 작업 제출
  • 작업 상태 쿼리

완료되면, 작업의 데이터가 클라이언트의 사용 사례에 따라 aschannel 또는 asstore 중 하나에서 얻을 수 있습니다.

방법 요약

서비스, 조치 및 엔드 포인트 발견

/account/

/account/ endpoint를 사용하여 클라이언트는 다음에 대한 정보를 얻을 수 있습니다.

  • 사용 가능한 서비스
  • 사용 가능한 작업 및 해당 매개 변수 및 사용 권한
  • 작업 제출 및 검색에 사용할 수있는 끝점

이렇게하려면 검색 요청이 이루어집니다.

$ curl \
    -X GET \
    -H 'Authorization: Token <TOKEN>' \
    https://asapi.reincubate.com/account/ -D -

사용 가능한 서비스, 작업 및 끝점을 설명하는 JSON 집합이 반환됩니다. 아래의 예는 약식입니다 :

{ "services": [{
    "name": "iCloud",
    "actions": [{
      "description": "",
      "parameters": [{
        "type": "string",
        "description": "",
        "optional": false,
        "name": "Device",
        "slug": "device"
      }, {
        "type": "date",
        "description": "",
        "optional": true,
        "name": "Since",
        "slug": "since"
      }],
      "name": "Fetch Data",
      "execution": "Asynchronous",
      "slug": "fetch-data",
      "permissions": {
        "data": ["sms"]
      }
    }],
    "slug": "icloud"
  }],
  "task_submission_endpoint": {
    "host": "asapi.reincubate.com",
    "protocol": "https",
    "uri": "/submit-task/"
  },
  "stream_endpoints": [{
    "host": "aschannel.reincubate.com",
    "protocol": "https",
    "uri": "/stream/"
  }]
}

이 경우, 클라이언트는 icloud 서비스 및 fetch-data 조치에 액세스 할 수 있습니다. 그들은 devicedata 매개 변수를 사용할 때 제출해야하며 선택적으로 since 매개 변수도 제출해야합니다.

이 마지막 data 매개 변수는 목록 형식이어야합니다. 이 매개 변수는 fetch-data 섹션의 permissions > data 에 나열된 모든 값을 포함 할 수 있습니다.

task_submission_endpoint 는이 응답에 정의되어 있으며 클라이언트에게 실행을 위해 작업을 제출할 수있는 위치를 알려줍니다.

stream_endpointstream_endpoint 으로 정의됩니다. aschannel.reincubate.com , aschannel 이 결과 엔드 포인트로 구성됩니다. 또는 토큰의 구성에 따라 클라이언트를 asstore지정할 수 있습니다.

계정 등록 및 등록 취소

register-account

조치를 제출하려면 해당 조치를 취할 수있는 계정을 asapi 에 알려야합니다. 이를 위해 /register-account/ endpoint를 사용합니다 :

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "service=<SERVICE>" \
    -d "username=<USERNAME>" \
    https://asapi.reincubate.com/register-account/ -D -

이 요청에서 <SERVICE> 는 특정 작업을 소유하는 서비스이고 <USERNAME> 은 작업에 사용될 계정을 나타냅니다.

deregister-account

계정을 더 이상 사용하지 않을 경우 계정을 등록 취소 할 수 있습니다. 계정 등록을 취소하려면 비슷한 요청을 /deregister-account/ endpoint로 보낼 수 있습니다.

$ curl \
    -X POST \
    -H 'Authorization: Token <TOKEN>' \
    -d "service=<SERVICE>" \
    -d "username=<USERNAME>" \
    https://asapi.reincubate.com/deregister-account/ -D -

두 방법 모두 성공하면 200 응답을 반환합니다.

{ "success": true
}

가능한 오류는 다음과 같습니다.

  • unique_together : "이 서비스, 클라이언트 및 사용자 이름이있는 계정이 이미 있습니다"

작업 제출

[TASK-SUBMISSION]

비동기 태스크는 task_submission_endpoint 지정된 엔드 포인트를 사용하여 제출할 수 있습니다.

작업을 제출하려면 다음 명령을 사용합니다.

$ curl \
    -X POST \
    -H "Authorization: Token <TOKEN>" \
    -d "service=<SERVICE>" \
    -d "action=<ACTION>" \
    -d "account=<ACCOUNT>" \
    -d "param1=<VALUE1>" \
    -d "param2=<VALUE2>" \
    <TASK_SUBMISSION_ENDPOINT> -D -

요청시 :

성공시 요청은 200 을 반환합니다.

{ "task_id": "<TASK_ID>",
  "retrieval_protocol": "<RETRIEVAL_PROTOCOL>",
  "stream": "<STREAM>",
  "success": true
}

이 응답에서 : <TASK_ID>상태쿼리하고 저장소 의 결과를 검색하는 데 사용할 수있는 작업의 ID를 제공합니다 ( asstore를 사용하는 경우). <RETRIEVAL_PROTOCOL> 은 작업 결과를 검색하는 데 사용되는 방법을 나타내며 aschannel 또는 asstore 의 값을 취할 수 있습니다. <STREAM> aschannel을 사용하는 경우 작업 결과를 검색하는 데 사용되는 스트림 ID입니다.

요청이 잘못된 경우 "success"속성은 false가되고 응답에는 "errors"섹션에 피드백이 포함됩니다. 예 :

{ "errors": {
    "service": [
      ["[u'Invalid service name']", "invalid_service"]
    ]
  },
  "success": false
}

* invalid_service : '잘못된 서비스 이름'* invalid_parameter_value : '매개 변수에 허용되지 않는 값'* no_such_account : '해당 계정 없음'* invalid : '잘못된 값'* limit_exceeded : '너무 많은 작업 ID 제출'* invalid_action : 'Invalid action'* missing-param : '매개 변수 누락'

작업 상태 쿼리

/task-status/

asapi 엔드 포인트에 제출 된 각 태스크마다 task_id 가 제공됩니다. 클라이언트는 태스크 상태를 발견하기 위해 주기적으로이 task_idasapi 엔드 포인트에 제출할 수 있습니다. 그 상태는 /task-status/ endpoint에 대한 POST 요청으로 질의 할 수 있습니다. 클라이언트는 최대 10,000 개의 작업 상태를 동시에 요청할 수 있습니다.

$ curl \
    -X POST \
    -H "Authorization: Token <TOKEN>" \
    -d "task_ids=<TASK_ID_1>,<TASK_ID_2>,<TASK_ID_3>,<TASK_ID_4>,<TASK_ID_5>,<TASK_ID_6>,<TASK_ID_7>" \
    https://asapi.reincubate.com/task-status/

최소한 하나의 올바른 <TASK_ID> 주어지면 응답은 다음 형식의 200이됩니다.

{ "<TASK_ID_1>": {
    "status": "<TASK_STATUS>",
    "retrieval_protocol": "<RETRIEVAL_PROTOCOL>",
    "result_retrieved": "<RETRIEVAL_STATUS>",
    "success": "<TASK_SUCCESS>"
  },
  "success": "<CHECK_SUCCESS>"
}

<TASK_SUCCESS> 가 "True"이면 결과를 적절한 엔드 포인트에서 즉시 사용할 수 있습니다.

status 속성은 다음 값을 취할 수 있습니다.

  • Pending
  • In progress
  • Work complete
  • Publish ongoing, with result available
  • Publish complete (이 경우 success 값은 '참'임)
  • Publish failed (이 경우 success 값은 '거짓'임)
  • Task did not complete successfully. (이 경우 success 값은 "false"임)

<RETRIEVAL_PROTOCOL> indicates the method used to retrieve the task results and can take the value of aschannel or asstore depending on the token.

<RETRIEVAL_STATUS> is a boolean, indicating whether the task's results have already been consumed by a client. If <RETRIEVAL_STATUS> is "True", then the results have already been consumed and are no longer available.

JSON 트리의 루트에있는 <CHECK_SUCCESS> 매개 변수는 상태 검사 자체의 성공을 나타냅니다. 이 값이 "false"이면 응답에 추가 "오류"항목이 포함됩니다.

가능한 오류는 다음과 같습니다.

  • invalid : "잘못된 task_id 값 : "
  • limit_exceeded : "제출 된 작업 ID가 너무 많습니다. "

출력 예는 다음과 같습니다.

{
  "<TASK_ID_1>": {
    "success": false,
    "error": "No task with this ID was found."
  },
  "<TASK_ID_2>": {
    "status": "Publish complete",
    "retrieval_protocol": "aschannel",
    "result_retrieved": false,
    "success": true
  },
  "<TASK_ID_3>": {
    "status": "Publish complete",
    "retrieval_protocol": "asstore",
    "retrieval_endpoint": "https://asstore.reincubate.com/fetch/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/",
    "result_retrieved": true,
    "success": true
  },
  "<TASK_ID_4>": {
    "status": "Publish failed",
    "retrieval_endpoint": "https://asstore.reincubate.com/fetch/1111111-2222-3333-4444-555555555555/",
    "success": false,
    "error": "Task did not complete successfully.",
    "retrieval_protocol": "asstore",
    "result_retrieved": false
  },
  "<TASK_ID_5>": {
    "status": "Pending",
    "result_retrieved": false,
    "success": false
  },
  "<TASK_ID_6>": {
    "status": "In progress",
    "result_retrieved": false,
    "success": false
  },
  "<TASK_ID_7>": {
    "status": "Work complete",
    "result_retrieved": false,
    "success": false
  },
  "success": true,
}

어떻게 도와 드릴까요?

지원 팀이 도와 드리겠습니다!

근무 시간은 월요일부터 금요일, 오전 9 시부 터 오후 5시 (그리니치 표준시)입니다. 시간은 현재 10:01 오후 GMT입니다.

우리는 1 일 이내에 모든 메시지에 답장하고자합니다.

지원 섹션으로 이동 › 엔터프라이즈 팀에 문의하십시오. ›
우리의 멋진 지원 팀

© 2008 - 2019 Reincubate Ltd. 판권 소유. 영국과 웨일즈에 등록 #5189175, VAT GB151788978. Reincubate®는 등록 상표입니다. 개인 정보 및 이용 약관. 우리는 2FA를 권장합니다. 런던에서 Built로 지어졌습니다.