txrestapi.facilitando a criação de serviços de API de descanso em torcido | |
Baixe Agora |
txrestapi. Classificação e resumo
Propaganda
- Licença:
- MIT/X Consortium Lic...
- Nome do editor:
- Ian McCracken
- Site do editor:
- http://code.google.com/u/ian.mccracken/
txrestapi. Tag
txrestapi. Descrição
Facilitando a criação de serviços de API de descanso em torcido O TXRestapi é uma biblioteca que facilita a criação de serviços de API de descanso trançado. Normalmente, alguém criaria subclasses de recursos definindo cada segmento de um caminho; Isso é cuberstome para implementar e resulta em produção que não é muito legível. O TXRestapi fornece uma classe Apiresource, permitindo um mapeamento complexo de caminhos para retorno de chamada (A La Django) com um decorador legível. Registro de retorno de chamada de URL do Basic, vamos criar um serviço de API nu: >>> de TXRestapi.Resource Import Apiresource >>> API = apiresource ( ) e um servidor da Web para atendê-lo: >>> do site de importação twisted.web.server >>> de Twisted.Internet Import Reator >>> site = site (API, Timeout = Nenhum) e uma função para facilitar EUA para fazer pedidos (apenas para fins médicos; normalmente você usaria, claro, reator.listentcp (site, 8080)): >>> do Twisted.Web.Server Importação solicitação >>> Classe Fakechannel (Object): ... Transporte = Nenhum >>> def makerequest (método, caminho): ... req = solicitação (fakechannel (), nenhum) ... req.prepath = req.postpath = Nenhum ... req.method = método; REQ.PATH = Path ... Resource = site.getchildwithDefault (caminho, req) ... Retward Resource.Render (Req) Agora podemos registrar rendimentos para caminhos que nos interessam. Podemos fornecer diferentes retornos de chamada para diferentes métodos; Eles devem aceitar o pedido como o primeiro argumento: >>> def get_callback (solicitação): return 'obter retorno de chamada' >>> api.register ('get', '^ / caminho / para / método', get_callback) >>> def Post_Callback (Solicitação): Retorne 'Post Callback' >>> API.Register ('Post', '^ / Path / to / Method', post_callback) então, quando fizermos uma chamada, a solicitação é roteada para a chamada correta: >>> Imprimir Makerequest ('Obter', '/ Path / To / Method') Obtenha retorno de retorno >>> Imprimir Makerequest ('Post', '/ Path / to / Method') Postar Callbackwe pode registrar vários rendimentos para diferentes solicitações; O primeiro que corresponde WINS: >>> DEF Default_Callback (solicitação): ... return 'Callback padrão' >>> api.register ('get', '^ /. * $', default_callback) # corresponde a tudo >> > Imprimir Makerequest ('Obter', '/ Path / To / Method') Obtenha retorno de chamada >>> Imprimir Makerequest ('Get', '/ Path / to / Diferente / Method') Padrão Callbackour Padrão de chamada, no entanto, Obter solicitações. Para um retorno de chamada padrão, podemos registrar retornos de chamada para cada método individualmente, ou podemos usar todos: >>> api.register ('tudo', '^ /. * $', Default_callback) >>> impressão makerequest ('' Coloque '/ / Path / To / Method') Callback padrão >>> Imprimir MAKEEREQUEST ('Excluir', '/ Path / to / Method') Callback padrão >>> Imprimir Makerequest ('Get', '/ Caminho / para / Método ') Obtenha o registro de todas as referências do Callbacklet para o retorno de chamada padrão para que ele não interfira em testes posteriores (os retornos de chamada padrão devem, é claro, ser sempre registrados por último, para que eles não sejam chamados antes de outros retornos de chamada): >>> API.UnRegister (callback = Default_Callback) ORL ArgumentsSince Callbacks Aceitam solicitação, eles têm acesso aos argumentos postados ou consultas, mas também podemos extrair argumentos fora do URL usando grupos nomeados na expressão regular (semelhante ao Django). Estes serão transmitidos para o retorno de chamada como argumentos de palavras-chave: >>> def obter_info (solicitação, id): ... Retornar 'Informações para ID% S'% ID >>> API.Register ('Get', '/ (? P
txrestapi. Software Relacionado
Permissionkit.
Uma estrutura muito simples para criar objetos de permissão e usá-los em verificações de autorização ...
50