Versionamento e estabilidade
Como a API é versionada, quais mudanças podem chegar sem uma nova versão maior e como se fixar na v1.
O PDF Blocks versiona a API para que você possa adotar melhorias sem medo de quebras inesperadas. As regras abaixo dizem exatamente quais mudanças é seguro receber automaticamente e como qualquer mudança incompatível chegaria até você.
Versionamento semântico
A API segue o Versionamento Semântico 2.0.0. Dado um
número de versão X.Y.Z:
| Parte | Nome | Significado |
|---|---|---|
X |
Maior | Mudanças incompatíveis com versões anteriores. |
Y |
Menor | Adições de recursos retrocompatíveis. |
Z |
Correção | Correções de bugs retrocompatíveis. |
A versão atual da especificação é 1.18.0. Você sempre pode ler a versão
vigente no campo info.version da
especificação OpenAPI.
A versão maior v1 no caminho
A versão maior fica fixada no caminho da URL: toda ação vive sob /v1/,
como em https://api.pdfblocks.com/v1/add_text_watermark. As versões menores e
de correção são publicadas no mesmo lugar, sob /v1/. Você as recebe
automaticamente e nunca muda suas URLs para obtê-las. Como as mudanças
incompatíveis só são publicadas sob uma nova versão maior (um novo segmento de
caminho), permanecer em /v1/ significa permanecer em um contrato estável.
O que conta como retrocompatível
Dentro da v1, fazemos mudanças aditivas sem uma nova versão maior. Trate tudo
o que segue como algo que pode aparecer a qualquer momento e escreva clientes
que tolerem isso:
- Novos parâmetros opcionais em uma ação existente.
- Novos valores aceitos para um parâmetro existente: uma enumeração ampliada.
- Aliases de parâmetros: um novo nome para um campo existente, com o nome antigo ainda aceito.
- Respostas mais ricas: novos campos em um corpo de resposta ou novos cabeçalhos de resposta.
- Novas ações e novos endpoints.
Nenhuma dessas mudanças exige que você fixe uma versão menor nem que altere seu código. Para se manter compatível, ignore os campos de resposta que não reconhecer, em vez de falhar por causa deles, e não presuma um conjunto fixo e exaustivo de valores de enumeração.
Como as mudanças incompatíveis são publicadas
Uma mudança incompatível (remover ou renomear um parâmetro obrigatório, alterar
uma resposta de forma incompatível ou mudar um comportamento estabelecido) só
seria publicada como uma nova versão maior sob um novo caminho, como /v2/.
Suas chamadas a /v1/ continuam funcionando sem alteração, e você migra no seu
próprio ritmo. Não fazemos mudanças incompatíveis no mesmo lugar sob /v1/.
Fixe-se em uma versão maior
Fixe sua integração na versão maior v1 mantendo /v1/ nas URLs das suas
requisições. Isso é tudo o que você precisa fixar: você recebe automaticamente
as melhorias menores e de correção retrocompatíveis, enquanto as mudanças
incompatíveis ficam fora do seu caminho até que você opte por adotar uma versão
maior futura.
Acompanhe o que mudou em cada versão no Registro de alterações.