REST APIs com Django Mailson Lira mailson.net [email_address] XIV Encontro do PUG-PE
Quem sou eu Aluno do sexto período de Ciência da Computação da UFPE com interesse em desenvolvimento web.
Web Service
Web Service
Web Service Não tem problemas com firewall
Nível baixo de complexidade
SOAP Bastante usado na “Web 1.0”
Aproveita protocolos já existentes (HTTP, SMTP)
Mensagens no formato XML
SOAP
REST Para alguns, SOAP passou a ser complicado demais
REST não é um protocolo. Não existe um padrão definido
A requisição pode estar somente na URL
Pra que serve? Desenvolvimento de APIs
Distribuição de conteúdo
Quem usa? Twitter
Flickr
LinkedIn
Yahoo!
Amazon
Youtube

REST APIs com Django

Notas do Editor

  • #4 Você precisa acessar informações de um servidor de terceiros. Ao invés de acoesso direto ao banco de dados, ele pode liberar uma API para tornar seu trabalho mais simples e o dele mais seguro.
  • #5 Isso não é novo. Há muito tempo já se faz algo do tipo. O problema é que para manter a fluidez da web, isso devia ser feito de forma mais simples.
  • #7 Desenvolvido pela Microsoft Formato XML é mais simples do que mensagens binárias usadas no CORBA, por exemplo.
  • #8 Envia um XML dizendo o que quer, o servidor executa a ação solicitada e retorna outro XML com a resposta.
  • #10 Você vai fazer uma API com REST
  • #14 A resposta pode ser em vários formatos. import urllib2 r=urllib2.urlopen('http://api.twitter.com/1/trends.json').read() import json tt = json.loads(r) for t in tt['trends']: print “%s -> %s” % (t['name'], t['url'])
  • #17 class PollsResource(View): # GET /rest/polls/ def get(self, request): # Pega todas as enquetes polls = Poll.objects.all() # Retorna uma lista de enquetes (dicionario contendo id, pergunta e url da API para ver mais dados sobre a enquete) return [{'id': p.id, 'question': (p.question), 'pub_date': str(p.pub_date), 'url': reverse('poll-resource', args=(p.id,))} for p in polls]