REST APIs com Django

4,016 views
3,954 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,016
On SlideShare
0
From Embeds
0
Number of Embeds
1,570
Actions
Shares
0
Downloads
42
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 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.
  • 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.
  • Desenvolvido pela Microsoft Formato XML é mais simples do que mensagens binárias usadas no CORBA, por exemplo.
  • Envia um XML dizendo o que quer, o servidor executa a ação solicitada e retorna outro XML com a resposta.
  • Você vai fazer uma API com REST
  • 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'])
  • 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]
  • REST APIs com Django

    1. 1. REST APIs com Django Mailson Lira mailson.net [email_address] XIV Encontro do PUG-PE
    2. 2. Quem sou eu <ul>Aluno do sexto período de Ciência da Computação da UFPE com interesse em desenvolvimento web. </ul>
    3. 3. Web Service
    4. 4. Web Service
    5. 5. Web Service <ul><li>Não tem problemas com firewall
    6. 6. Nível baixo de complexidade </li></ul>
    7. 7. SOAP <ul><li>Bastante usado na “Web 1.0”
    8. 8. Aproveita protocolos já existentes (HTTP, SMTP)
    9. 9. Mensagens no formato XML </li></ul>
    10. 10. SOAP
    11. 11. REST <ul><li>Para alguns, SOAP passou a ser complicado demais
    12. 12. REST não é um protocolo. Não existe um padrão definido
    13. 13. A requisição pode estar somente na URL </li></ul>
    14. 14. Pra que serve? <ul><li>Desenvolvimento de APIs
    15. 15. Distribuição de conteúdo </li></ul>
    16. 16. Quem usa? <ul><li>Twitter
    17. 17. Flickr
    18. 18. LinkedIn
    19. 19. Yahoo!
    20. 20. Amazon
    21. 21. Youtube </li></ul>
    22. 22. REST vs. SOAP <ul><li>REST não é um protocolo
    23. 23. Conjunto de princípios </li></ul>
    24. 24. REST vs. SOAP Requisitando os Trending Topics do Twitter no caso de uma API SOAP. A resposta seria obrigatoriamente outro XML.
    25. 25. REST <ul>Requisitando os Trending Topics do jeito REST </ul>http://api.twitter.com/1/trends.json
    26. 26. REST <ul><li>Facilidade de usar </li><ul><li>Praticamente não é necessário o uso de bibliotecas </li></ul><li>Aproveita os métodos do HTTP </li><ul><li>GET, POST, PUT, DELETE </li></ul></ul>
    27. 27. REST <ul><li>Exemplos com Django REST Framework </li></ul>
    28. 28. GET /rest/polls/ views.py urls.py urls.py
    29. 29. GET /rest/polls/ID urls.py views.py
    30. 30. PUT /rest/choices/ID urls.py views.py
    31. 31. POST /rest/polls/ views.py
    32. 32. DELETE /rest/polls/ID views.py
    33. 33. Veja mais <ul><li>Django REST Framework </li><ul><li>http://django-rest-framework.org/ </li></ul><li>Introdução a Django em 4 partes </li><ul><li>https://docs.djangoproject.com/en/1.3/intro/tutorial01/
    34. 34. http://docs.djangobrasil.org/intro/tutorial01.html (em português) </li></ul><li>Tutorial de REST </li><ul><li>http://rest.elkstein.org/ </li></ul><li>Entenda melhor sobre REST </li><ul><li>http://jacobian.org/writing/rest-worst-practices/
    35. 35. http://blog.steveklabnik.com/2011/07/03/nobody-understands-rest-or-http.html </li></ul></ul>

    ×