Não entendo por que não existe documentação completa para todos os endpoints da API. A documentação original foi lançada ao público em dezembro de 2014, e aqui estamos, seis anos depois, e a documentação ainda está inacabada.
Por que isso acontece? A falta de boa documentação e a sugestão de fazer engenharia reversa na API são barreiras significativas para desenvolvedores que desejam usar a API.
Este é um tópico oportuno, pois tenho um aviso no meu fórum: “Detectamos uma solicitação de API usando um método de autenticação obsoleto.”
Gostaria de saber qual é o método atual que devo usar e obter um guia passo a passo para implementá-lo, do ponto de vista do administrador do fórum.
O que encontrei são discussões desatualizadas que linkam para o GitHub e, como pessoa não técnica, referências a códigos não são úteis para mim. Alguém poderia fornecer orientações em linguagem simples?
A autenticação adequada da API é abordada na documentação, bem no topo. Em resumo, você precisa usar cabeçalhos HTTP para fornecer a chave da API e o nome de usuário, em vez de parâmetros de URL.
@justin Meu exemplo específico é que estou lentamente trabalhando na implementação de um wrapper em Python para a API do Discourse, e a falta de documentação adequada é esmagadora. Já tenho que testar manualmente cada endpoint individualmente, mas muitos desses endpoints não estão documentados ou estão documentados de forma incorreta.
É dito explicitamente no topo da documentação que a API não está totalmente documentada. Quero saber: Por quê?
Por curiosidade, por que vocês não simplesmente suportam o que é necessário até encontrar um novo requisito não suportado, momento em que fazem engenharia reversa? Isso é muito mais fácil do que mirar em 100% e não faz sentido envolver chamadas que nunca serão usadas? Especialmente porque vocês estarão lidando com um alvo em constante mudança. Facilita a vida de vocês!
Entendo que isso possa ser engenharia reversa. É apenas um pouco frustrante ter que fazer isso. A API foi criada por humanos que devem saber como funciona; por que esses humanos não podem escrevê-la para que outros sejam informados?
Não acho que isso seja um grande pedido. Uma boa documentação é crucial em qualquer projeto.
Esse é o plano no momento: tenho todos os endpoints documentados espelhados no meu repositório, na branch develop, e cheguei ao ponto em que terei que começar a fazer engenharia reversa.
Como em qualquer coisa, trata-se de recursos e prioridades. A superfície da API é enorme. Tecnicamente, é tudo — tudo é acessado via API, razão pela qual a engenharia reversa funciona. Optamos por focar nosso tempo limitado de engenharia em correções, recursos, desempenho etc., em vez de documentação. Nossa direção de produto é amplamente impulsionada por nossos clientes e nossa comunidade. Até onde sei, nenhum cliente jamais solicitou cobertura de 100% da documentação da API. Quando os clientes perguntam sobre algo que está faltando ou pouco claro, nós adicionamos. Portanto, a cobertura de 100% não tem sido uma prioridade.
No momento, a documentação da API é curada manualmente. Obviamente, esse não é um método sustentável, mas por enquanto é o que temos. Refatorar o sistema de documentação da API para que seja gerado programaticamente é um item “a fazer”, mas não está previsto para nenhuma versão específica atualmente, portanto, não há cronograma para conclusão.