Search code examples
apiblueprintapiary.ioapiary

Apiary Blueprint attributes under headers and body are not recognized


Final Edit: This works with no semantic errors:

+ Request

    + Headers

            Accept: application/json
            Content-Type: application/json
            X-Auth-Client: Your Client Id
            X-Auth-Token: Your Token

    + Body

    + Attributes (ProductPost)


+ Response 200

    + Headers

            Content-Encoding: Entity header is used to compress the media-type.
            Content-Type: application/json
            Date: The date the response was sent.
            Transfer-Encoding: Header specifies the form of encoding used to safely transfer the entity to the user.
            Vary: HTTP response header determines how to match future request headers to decide whether a cached response can be used rather than requesting a fresh one from the origin server. We use Accept Encoding
            X-Rate-Limit-Requests-Left: Header details how many remaining requests your client can make in the current window before being rate-limited. 
            X-Rate-Limit-Requests-Quota: Header shows how many API requests are allowed in the current window for your client 
            X-Rate-Limit-Time-Reset-Ms: Header shows how many milliseconds are remaining in the window. 
            X-Rate-Limit-Time-Window-Ms: Header shows the size of your current rate-limiting window

    + Body

    + Attributes (ProductResponse)

Edit: The header section is rendering, but now the Body section is just showing the text " + Attributes (ProductPost)"

+ Request

    + Headers

            Accept: application/json
            Content-Type: application/json
            X-Auth-Client: Your Client Id
            X-Auth-Token: Your Token



+ Response 200

    + Headers

            Content-Encoding: Entity header is used to compress the media-type.
            Content-Type: application/json
            Date: The date the response was sent.
            Transfer-Encoding: Header specifies the form of encoding used to safely transfer the entity to the user.
            Vary: HTTP response header determines how to match future request headers to decide whether a cached response can be used rather than requesting a fresh one from the origin server. We use Accept Encoding
            X-Rate-Limit-Requests-Left: Header details how many remaining requests your client can make in the current window before being rate-limited. 
            X-Rate-Limit-Requests-Quota: Header shows how many API requests are allowed in the current window for your client 
            X-Rate-Limit-Time-Reset-Ms: Header shows how many milliseconds are remaining in the window. 
            X-Rate-Limit-Time-Window-Ms: Header shows the size of your current rate-limiting window


    + Body

            + Attributes (ProductCollectionResponse)

I am trying to define the Request Body and after reading this: https://help.apiary.io/api_101/apib-authentication/ & https://github.com/apiaryio/api-blueprint/blob/master/API%20Blueprint%20Specification.md#def-headers-section

It seemed like I could split them into sections. But the Attributes section is not being recognized. This is a /GET request.

Any ideas why?

+ Request (application/json)

    + Headers

        + Attributes (RequestHeaders) 

    + Body

        + Attributes (ProductPost)

Solution

  • Headers section can't contain Attributes, you need to define them explicitly. Just replace:

        + Attributes (RequestHeaders) 
    

    with definition of RequestHeaders.

    Also try to align Body and Attributes at the same column:

    + Body
    + Attributes (ProductPost)