quarta-feira, 20 de outubro de 2010

Criando APIs com FRAPI

Imagine: Você está trabalhando em um sistema de grande porte. Tem uma substancial e bem estabelecida base de código, um sistema ACL elaboradas e um monte de código proprietário. Você foi convidado para criar uma API RESTful para permitir acesso a todos os grandes recursos da sua aplicação. Claro que existem algumas opções, você pode escrever o código você mesmo para lidar com todas as funcionalidades nova API, ou você pode usar uma estrutura existente que lida com a maioria de presente para você. Quando começar a olhar para a criação de uma API RESTful para web2project me deparei com FRAPI e amava o que eu vi.

FRAPI é um framework baseado em PHP para a criação de APIs RESTful. Como a maioria dos quadros que ajuda você a criar rapidamente o seu pedido através da geração de código de esqueleto, bem como manusear as funções básicas para que você não gaste seu tempo reinventando a roda. FRAPI, diferentemente da maioria dos quadros de propósito geral, não é feita para a construção de aplicações web. Centra-se na construção de Web Services REST que os desenvolvedores de mashup em seus aplicativos web.


A interface FRAPI administrador permite que você crie facilmente ações, definir códigos de erro / resposta, criar parceiros API, editar outros ajustes gerais, como uma conexão de banco de dados e por último mas não menos definitivamente - uma interface agradável para testar todas as suas ações. Não confunda "Ações" com XML-RPC, como o chama. Ações é apenas um nome comum para muitos desenvolvedores, usado para definir recursos ou coleções.
Criando uma ação através da interface de administração é tão simples quanto definindo o nome da ação, se ele estiver habilitado, pública, tem um percurso personalizado e uma descrição da ação e então você pode adicionar parâmetros para a ação. Depois de ter definido a sua acção FRAPI irá gerar uma classe PHP para você com métodos para a manipulação GET, POST, PUT, DELETE e pedidos HEAD. Tudo o que resta para você fazer é colocar o código apropriado para sua aplicação em cada um desses métodos.
Retornando dados a partir destes métodos é tão fácil como a construção de uma matriz e atribuí-la a uma propriedade de classe. FRAPI irá automagicamente convertê-lo para lidar com CLI, HTML, JSON, PHP, PRINTR (ótimo quando a depuração) e XML para a saída. Na maioria das vezes FRAPI irá fazer a conversão perfeita, mas pelas vezes que não é possível definir modelos personalizados para a saída. Um exemplo de quando você precisa criar um modelo personalizado é quando você tem as chaves numéricas em sua matriz de dados e está tentando de saída XML. Desde que um número não é uma tag XML válido, terá de criar um modelo personalizado para lidar com looping corretamente a saída de dados. Os modelos são baseados em PHP e simples de criar. Você só precisa criar um arquivo de modelo com o mesmo nome de sua ação e colocar o XML ou HTML nele. Você pode usar o PHP para acessar os dados da sua acção e para criar laços e outras estruturas de controle necessárias.
A próxima coisa importante ao criar uma API está definindo e documentando os seus códigos de resposta. A interface FRAPI administrador permite que você crie os seus códigos de resposta, basta definir um código de HTTP, o nome do erro, a mensagem de erro e uma descrição para o código de resposta. Uma vez definido, você pode facilmente retornar o código de resposta adequada, lançando uma Frapi_Error com o nome de um erro definido e FRAPI cuida do resto.
No topo de gerar o código para as ações e FRAPI códigos de resposta também irá gerar a documentação cada vez mais importante para a sua API, em formatos de desconto, texto, HTML ou PDF.
Depois de ter criado as suas ações e definiu os seus códigos de resposta que você vai querer testá-los. FRAPI tem uma interface de administração para fazer exatamente isso. A interface permite que você selecione a sua ação, adicionar quaisquer parâmetros, escolher o método de HTTP e tipo de resposta e uma carga de informação parceiros específicos, se necessário, antes de fazer o pedido. Uma vez que a solicitação é feita a interface de administração irá exibir a URL completa é utilizado para o pedido, o código de resposta, os cabeçalhos de resposta e, naturalmente, o corpo da resposta. Isto lhe dará uma boa visão geral da resposta a sua ação produzido e é muito útil para depuração quando primeiramente começar sua API criada.


Depois de ter concluído a criação de sua API e está pronto para ir para produção, você terá de considerar a escalabilidade. FRAPI também pode ajudar com isso, pois tem o cache construído dentro Por padrão, ele irá usar a APC cache, tanto quanto possível. No entanto, você também tem a opção de memcache, memcached, Redis, WinCache e se você não tiver nenhum desses um cache manequim está disponível que permite que você execute FRAPI sem cache.


Agora que você sabe o que FRAPI pode fazer por você, vamos discutir o que você tem que fazer para usá-lo.


Todo o código gerado por suas ações, códigos de resposta e as configurações são armazenadas em um único diretório. Ao criar a API web2project Eu criei um novo repositório git e armazenar somente este diretório. Como já tinha uma função autoload, bem como uma ACL definida no web2project, eu utilizei o FRAPI-criado arquivo AllFiles.php que é usado para o processamento de todas as ações. Em seguida, defini o diretório raiz da minha instalação web2project e incluiu a nossa função autoload e outros arquivos que o sistema necessário para funcionar. Uma vez que foi completo, eu poderia ter feito em FRAPI como se eu estivesse no web2project si.


Se você tem um projeto que vem acima que requer uma API ou estão apenas interessados em desenvolvimento de API, em geral, eu iria sugerir-lhe a cabeça sobre a getfrapi.com e baixar uma cópia para experimentá-lo sozinho. Melhor ainda, pegue o pronto para ir Amazônia AMI, carregá-lo e começar a desenvolver. Claro, se você tiver problemas ou tiver dúvidas, saltar sobre o canal de IRC # frapi na rede Freenode para obter alguma ajuda sempre amigável.



Mailson Leal
www.twitter.com/mailsonleal
www.comtatodigital.com.br

Nenhum comentário:

Postar um comentário