Api-blueprint: Parâmetros de url comuns para todas as solicitações

Criado em 30 set. 2015  ·  8Comentários  ·  Fonte: apiaryio/api-blueprint

Oi,

nossa api exige que o cliente adicione uma apiKey, assinatura e carimbo de data / hora como uma string de consulta para cada solicitação

então eu tenho que repetir esta parte da consulta em cada definição de recurso como esta

## Client [/clients/{id}?apiKey={apiKey}&signature={signature}&timestamp={timestamp}]

e então parâmetros

+ Parameters
    + apiKey (required, string, `2961654ce6c3d01c79edc98c8d930d4cc663cda4`) 
    + signature (required, string, `213213jjflkjdsfl343k4jjfdsdsf`) 
    + timestamp (required, integer, `1443620910`) 

uma vez que temos endpoints operando em coleções e, em seguida, em um único recurso, eu tenho que copiar e colar isso para cada grupo pelo menos duas vezes e, em seguida, modificar os modelos de url que levam alguns parâmetros de consulta adicionais

quando você tem muitos grupos de recursos, isso se torna muito tedioso e, se você adicionar outro parâmetro de consulta comum obrigatório, terá que atualizar tudo

Eu sugiro adicionar alguma seção commonParams no topo do documento de blueprint e esses parâmetros seriam então aplicados a todas as solicitações

Comentários muito úteis

alguma atualização disso?

Ter Parameters agindo como Attributes em sua capacidade de fazer herança simples de um data-structures.md centralizado tornaria nossa base de código de projetos muito mais sustentável / SECA.

Todos 8 comentários

Olá @bazo , embora isso não seja compatível no momento. Temos uma proposta para isso em https://github.com/apiaryio/api-blueprint-rfcs/pull/3 (https://github.com/apiaryio/api-blueprint-rfcs/blob/zdne/mson- parameters / draft / mson-parameters-headers.md # parameters). É um recurso planejado.

Onde você pode fazer referência e herdar de outros parâmetros.

# Resource [/resource/{client}{?signature,apiKey,timestamp}]
+ Parameters (Authentication)
    + client: foo

# Data Structures
## Authentication (Parameters)
+ apiKey: 2961654ce6c3d01c79edc98c8d930d4cc663cda4 
+ signature: 213213jjflkjdsfl343k4jjfdsdsf
+ timestamp: 1443620910 (integer)

Acho que ele tem uma boa pergunta aqui:

então eu tenho que repetir esta parte da consulta em cada definição de recurso como esta

@zdne O que você acha? Podemos fazer algo sobre a repetição do modelo de uri?

Estou realmente tentado a reabrir este problema. Acho que esse problema é mais sobre como definir parâmetros comuns para mais de um recurso e menos sobre como usar a sintaxe de estilo MSON.

@zdne Adoraria se você pudesse dar uma opinião sobre isso.

Ser capaz de defini-los em algum tipo de esquema de autenticação personalizado seria o ideal. Semelhante a https://github.com/apiaryio/api-blueprint-rfcs/blob/kylef/authentication-oauth2/draft/authentication-oauth2.md.

Tudo bem se eles forem parâmetros relacionados à autenticação. Estou falando de outros parâmetros como page , per_page etc. Basicamente, qualquer coisa que possa ser usada para todos os recursos.

Usaria isso também.

@kylef o link que você

alguma atualização disso?

Ter Parameters agindo como Attributes em sua capacidade de fazer herança simples de um data-structures.md centralizado tornaria nossa base de código de projetos muito mais sustentável / SECA.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

annappropriate picture annappropriate  ·  5Comentários

mootpointer picture mootpointer  ·  4Comentários

jmdacruz picture jmdacruz  ·  6Comentários

Perni1984 picture Perni1984  ·  6Comentários

danilvalov picture danilvalov  ·  3Comentários