Organização dos componentes
Bom gente, estou montando uma API de integração com o Twitter, na verdade a API só é auxiliar, pra não ter que ficar fazendo cURL com os headers emitidos pela classe que gera a assinatura OAuth válida pro twitter, enfim .. minha dúvida ainda não é essa
É mais pelo seguinte, cada serviço que eles oferecem, uns requerem autenticação, outros não .. até aí tudo bem, temos uma classe que faz a transição da autenticação que será usada nos objetos que fornecem métodos que precisam de autenticação no webservice, beleza .. então daí temos
/applications/core/interface/imageproxy/imageproxy.php?img=http://uml.mbiosinformatica.com.br/Twitter.png&key=4d1e2cb3c881883c434926eb35d25ff9c448894bf38e6a34dfdbb041cc0b2bbc" alt="Twitter.png" />
Ou seja ..
Teremos a entidade TwitterAuthentication, que será enviada para TwitterOAuthentication, que irá executar os métodos getters, colhendo as informações da aplicação no twitter previamente setadas e fornece o(s) métodos que são responsáveis por gerar a assinatura ( cabeçalho ) que será adicionado no Header quando a requisição for enviada para a API do Twitter .. sem problemas ..
Agora, a classe Twitter NÃO é dependente da OAuthentication, muito menos da TwitterAuthentication, pois em alguns dos serviços, como já falei, não é necessário a autenticação .. beleza também, pra isso tem o método setter, quando formos usar algo que requer autenticação, setamos o OAuthentication ..
Agora, essa classe Twitter deve ser uma classe abstrata pelo fato de fornecer vários métodos para uso das APIs ( ou seja ) getTimeLine , getDirectMessages .. sendo que cada getter é responsável por retornar uma classe responsável por trabalhar com esses serviços .. daí tem vários componentes .. beleza
O problema: os serviços fornecidos por cada API tem parâmetros que fazem a mesma coisa, mas a informação de entrada ( input ) é diferente, exemplo:
Twitter::getTimeLine()->getRetweetedByUser ( [ id ou nome de usuário ] )
Como outros parâmetros que podem ser adicionados, são vaaarios, como limite de resultados trazidos, incluir entidades ... etc , a pergunta é a seguinte, como deveria ser passado esses parâmetros ? uma pasta para cada API sendo Twitter/API/TimeLine/TimeLineParams.php, TimeLine.php .. etc
e/ou propriedades na classe TimeLine, o que eu acho feio ..
Também tenho dúvidas quanto a classe Twitter ser abstrata ou não ..
Discussão (6)
Carregando comentários...