Как я могу указать общий раздел заголовков для всех запросов API Apiary/Blueprint?

У меня есть большой документ API, и каждый запрос имеет одинаковые заголовки запросов, такие как Accept: application/json и Cookies: SessionID. Есть ли способ объявить их глобально, чтобы избежать дублирования?


person Art    schedule 28.06.2016    source источник


Ответы (1)


Чаще всего я применяю в этом отношении определение структуры данных, а затем использую ее во всех этих запросах. В моем случае я использовал его для заголовков авторизации, которые все одинаковые.

Пример структуры данных и ее использования (неважно, где вы ее используете, заголовок или тело запроса, в данном случае в теле):

FORMAT: 1A
HOST: http://polls.apiblueprint.org/

# Auth API

This is an Auth API, where you can obtain authentication/authorization for your app in our system.

It is necessary that you provide your credentials in order to use the API. The endpoints of the Auth API are only to obtain a valid access token, which would be provided along with each call.

# Group Authentication

## Get a request token [/auth/request]

Obtain a request token so you can exchange it for an access token.

Requests tokens have a short expiry rate, and are only one time use.

### GET

+ Request (application/json)
    + Attributes
        - Authorization (OAuth Request)

+ Response 200 (application/json)

        {
                "oauth_token" : "request-token-ng7805hg85hjt89gu258ty25",
                "oauth_token_secret" : "TOKEN SECRET TO BE USED WHILE SIGNING REQUESTS"
        }

## Exchange a request token for an access token [/auth/exchange]

Once you have got a request token, you will be able to trade it for an access token and then be able to call the different API endpoints.

### GET

+ Request (application/json)
    + Attributes
        - Authorization (OAuth Exchange)

+ Response 200 (application/json)

        {
                "oauth_token" : "AN_INACTIVE_FRESH_ACCESS_TOKEN"
        }

# Data Structures

## OAuth base (object)

+ oauth_consumer_key: YOUR_CONSUMER_KEY (string, required)
+ oauth_nonce: A_UNIQUE_TOKEN_FOR_THIS_REQUEST_GENERATED_BY_YOU (string, required)
+ oauth_signature: A_SIGNATURE_HASH_BASED_ON_THE_REQUEST_PARAMS (string, required)
+ oauth_signature_method: `HMAC-SHA256` (string, required)
+ oauth_timestamp: MILLISECONDS_FROM_EPOC_UNIX_TIME (string, required)
+ oauth_version: 1.0 (string, required)

## OAuth Request (object)

+ Include OAuth base
+ oauth_callback: YOUR_CALLBACK_URL (string, required)

## OAuth Exchange (object)

+ Include OAuth base
+ oauth_token: YOUR_RECENTLY_OBTAINED_REQUEST_TOKEN (string, required)

Вам нужно только добавить имя структуры данных в круглых скобках, и все. Вы можете повторно использовать его столько раз, сколько захотите. Даже для построения других структур данных, в случае, если, как мне нужно, вы хотите основывать другие структуры данных на ранее определенной структуре данных.

person xarlymg89    schedule 29.06.2016
comment
Это работает с параметрами URL или тела, но не с телом - person MaicolBen; 07.11.2017