Hey all,
I’ve come across several (somewhat-old) articles on this forum that outline API rate limits (ex: Global rate limits and throttling in Discourse). I’m interested in this because, during the customization of our site, we’re making several API calls related to users and topics, and I’d like to ensure we keep the calls to a minimum.
Are these settings still configurable via the Admin panel? I haven’t come across anything thus far that relates to the Discourse API rate limits.
If not, is there a way to monitor the request activity somewhere?
These API rate limit settings are not configured via the admin panel, but you will add them to the app.yml file on the server where your discourse site is hosted. So you will have to ssh into your server to make the change if you are self hosted.
@blake obrigado pela resposta! Minha equipe, na verdade, vai usar o Discourse para hospedagem, então não temos nenhum dos nossos próprios arquivos de configuração. Existem caminhos para visualizar ou ajustar os limites da API se essa for a rota que seguirmos?
Se você estiver no plano enterprise, podemos ajustar alguns desses limites para você, além de fornecer alguma orientação sobre a API para que possamos reduzir a carga de uso da sua API.
O que recomendamos é que seu aplicativo que faz as chamadas de API lide com erros 429 e, em seguida, verifique o cabeçalho Retry-After recebido, e isso informará quando você poderá começar a fazer solicitações novamente.
@blake obrigado novamente pelas informações! Acho que minha equipe provavelmente está satisfeita com os limites de taxa padrão atuais, conforme definidos pelo Discourse. Você pode compartilhar quais são esses limites? Não consegui encontrar uma lista definitiva até agora.
@blake mais uma vez, obrigado pela informação! Isso está um tanto relacionado, mas você sabe se há um cronograma para adicionar personalizações de serializador no nível de temas/componentes? Tenho visto esse recurso mencionado neste fórum aqui e ali ao longo do último ano, mas sei que ele ainda não foi implementado.
Pergunto porque atualmente estamos buscando dados do usuário em uma base por tópico na lista de tópicos, o que pode aumentar com o tempo à medida que nossa plataforma tem mais e mais usuários. Adicionar certas partes do modelo de usuário a certos serializadores poderia ajudar a reduzir as chamadas de API que estamos tendo que fazer atualmente.
No entanto, recomendo o uso do plugin data-explorer para solicitações de dados personalizadas como esta. O que você pode fazer é criar sua própria consulta SQL personalizada e salvá-la para que ela receba um ID. Em seguida, você pode fazer uma chamada de API para essa consulta salva e ela será executada e retornará o JSON que você procura em uma única solicitação.