Trilhos ActiveResource
-
18-09-2019 - |
Pergunta
Estamos em processo de construção de um RESTO compatível com a API.O método é implementado em PHP e nós queremos a interface a seguir a convenção sobre configuração lema.
Muitas das API consumidores será desenvolvedores Rails, e depois de um TDD estratégia para a construção de API, considerámos usando o ActiveResource para a implementação de um consumidor, enquanto que a moldar a API para cumprir com estas normas.
Esta abordagem tem caído em desuso?Que outras opções ou convenções de que poderíamos ser capazes de aderir a fim de que podemos sentir confortável tendo construído uma forte API (Como o Flickr, Facebook, Twitter, etc.)?
Graças para os ponteiros.
Chade
Solução
ActiveResource requer o XML a ser muito detalhado, e IMO não é muito bem desenhado (o aninhamento de entidades pode ser uma verdadeira dor de cabeça)
Se a grande maioria de seus consumidores será desenvolvedores Rails, em seguida, talvez usando o ActiveResource compatível com o RESTO de serviços pode ser o caminho a percorrer, mas eles vão olhar muito feio para não-Trilhos e os consumidores.
Se você quiser que qualquer tecnologia capaz de consumi-lo, eu não usaria o ActiveResource, e gostaria de criar (XML ou JSON) que se ajustar os dados.
Eu tenho construído alguns sistemas que se comunicam usando o ActiveResource, e, mais recentemente, achei mais fácil fazer como eu sugiro acima.
Outras dicas
Usando o ActiveREsource convenções para mapeamento de métodos HTTP e urls para a API de ações é uma boa idéia, especialmente se, como você diz muitos de seus usuários vão usar os Trilhos.Além de que, eu aconselho você a ler "O Serviço Da Web Pode Não Ser Repousante Se..."como apenas o tratamento corretamente GET/POST/PUT/DELETE não é o tudo o que é necessário para ser realmente DESCANSAR.BTW, muitas das apis que você mencionou não são realmente DESCANSAR.
Pode ser um pouco tarde, mas se você estiver criando API para seus dados este é definitivamente vale a pena ler: https://plus.google.com/112678702228711889851/posts/eVeouesvaVX