Isto, "No entanto, filosoficamente - a primeira abordagem é a única abordagem.", e esta "A abordagem RESTful oficial apropriada é usar Accept: header." são amplamente percebidos para ser o caso, mas também são absolutamente incorretos .
Aqui está um pequeno trecho de Roy Fielding (que definiu REST) ...
"seção 6.2.1 não diz que a negociação de conteúdo deve ser usado o tempo todo. " cite
Essa conversa em particular está no contexto do cabeçalho 'Accept-Language:', mas o mesmo se aplica igualmente ao cabeçalho 'Accept:', como ficou claro mais tarde em sua resposta ...
"Não tenho ideia de por que as pessoas não podem ver o segundo e terceiro link na primeira página
que apontam para as duas edições do PDF. "
O que ele quer dizer é que não há problema em usar diferentes endpoints para diferentes representações dos mesmos dados de origem. (Nesse caso, um endpoint .html e dois endpoints .pdf diferentes.)
Também em uma discussão semelhante, desta vez sobre as virtudes do uso de parâmetros de consulta versus o uso de extensões de arquivos para diferentes tipos de mídia ...
"É por isso que eu sempre prefiro extensões. Nenhuma das opções tem nada a ver com o REST. " cite
Novamente, isso é um pouco diferente das extensões Aceitar vs. nome do arquivo, mas a posição de Fielding ainda é clara.
Resposta - isso realmente não importa muito. Os trade-offs entre os dois não são muito significativos e ambos são estilos aceitáveis.