txrestapi.

facilitando a criação de serviços de API de descanso em torcido
Baixe Agora

txrestapi. Classificação e resumo

Propaganda

  • Rating:
  • 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 +) / info $ ', get_info) >>> Imprimir MAKEEQUEST (' get ',' / someid / info ') Informações para identificar, em mente, todos os argumentos virão como se strings, então Deveria ser de acordo com a defesa.Decorator SytaxeRegistration através do método registrado () é um pouco estranho, então os decoradores são fornecidos tornando-o muito mais simples. >>> de txrestapi.methods Import get, post, colocar, toda >>> Classe Myresource (Apiresource) : ...... @get ('^ / (^ / (p +) / info') ... def get_info (auto, pedido, id): ... return 'Informações para ID% s' % ID ...... @put ('^ / (p +) / update') ... @post ('^ / (? p +) / update'). .. def set_info (auto, pedido, id): ... return "Informações de configuração para ID% s"% ID ...... @All ('^ /') ... Default_Ver (auto, pedido) : ... retorne "Eu coincidir com qualquer URL" novamente, as inscrições ocorrem de cima para baixo, portanto os métodos devem ser escritos da maioria específica para menos. Observe também que se pode usar a sintaxe do decorador como se esperaria registrar um método como o alvo para dois URLs >>> site = site (myresource (), tempoout = nenhum) >>> Imprimir makeerquest ('get', '/ Anid / Info ') Informações para ID Anid >>> Imprimir MAKEEQUEST (' colocar ',' / anid / update ') Configuração de informações para ID AnID >>> Imprimir MAKEEQUEST (' post ',' / anid / update ') Para ID ANID >>> Imprimir Makerequest ('Excluir', '/ AnID / Excluir') Eu correspondo quaisquer valores de retorno de URLCallback Você pode retornar objetos de recurso de um retorno de chamada, se desejar, permitindo que você tenha APIs que lhe enviem para outros tipos de recursos ou mesmo outras APIs. Normalmente, no entanto, você provavelmente vai querer retornar strings, que serão envolvidos em um objeto de recurso por conveniência. Requisitos: · Pitão


txrestapi. Software Relacionado

Permissionkit.

Uma estrutura muito simples para criar objetos de permissão e usá-los em verificações de autorização ...

50

Download