• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
ReSTFul Api's com FRAPI
 

ReSTFul Api's com FRAPI

on

  • 3,280 views

Crie suas API

Crie suas API

Statistics

Views

Total Views
3,280
Views on SlideShare
727
Embed Views
2,553

Actions

Likes
1
Downloads
3
Comments
0

5 Embeds 2,553

http://www.phpsc.com.br 2530
http://translate.googleusercontent.com 19
http://www.phpsc.com.br. 2
http://131.253.14.98 1
https://www.google.com.br 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    ReSTFul Api's com FRAPI ReSTFul Api's com FRAPI Presentation Transcript

    • RESTFUL webservicesConstruindo Apishttp://bit.ly/ZhgkiB
    • AgendaEuAPIsFrapiDemo
    • Mercantólogo por formação, desenvolvedor por paixão!Ativista por consciência!Alex Piaz (@zaip)alex@piaz.com.brhttp://www.zaip.net
    • Há 15+ anos nas interwebs...
    • Há 13 anos...1998
    • Há 7 anos...1998www.socioambiental.org
    • Gleilson Miranda/Secretaria de Comunicação do Estado do Acre/FUNAI
    • Chefe Almir Suruí
    • 1998
    • É só fazer um "XML" queresolve....
    • É só fazer um "XML" queresolve....
    • Ao vivo é muito pior!
    • Ao vivo é muito pior!http://www.youtube.com/watch?v=9C-IDT__1HE
    • APIhttp://en.wikipedia.org/wiki/Application_programming_interface
    • UMA API É UM CONTRATO !
    • Controle de acesso
    • IDENTIFICACAOhttp://blogs.estadao.com.br/radar-pop/homem-e-preso-em-recife-por-apresentar-rg-com-foto-de-jack-nicholson/
    • Autorização
    • Uso
    • Documentação
    • Formatos de saída
    • versões
    • Mensagens!
    • ReSTRepresentational State Transfer
    • http://alganet.github.io/rest-client-side/#/rest-roy
    • Estilo Arquitetural
    • HTTPRFC 2616
    • HTTP PARA DESIGNERSCliente / ServidorInterface UniformeCamadasStatelessCache
    • ReSTafarianos x Pragmaresticos
    • ReST Constraints● Cliente/Servidor● Interface Uniforme● Cache● Stateless● Camadas● Código sob demanda *
    • Recursos :: URLs + Verbos HTTPInterface UniformeGET http://api.piaz.com.br/ufoapi/v1/casos/1POST http://api.piaz.com.br/ufoapi/v1/casos/1PUT http://api.piaz.com.br/ufoapi/v1/casos/1DELETE http://api.piaz.com.br/ufoapi/v1/casos/1HEAD http://api.piaz.com.br/ufoapi/v1/casos/1Recursos são substantivosPrefira o plural ao singular2 URLs por recurso
    • Manipulação dos recursos através de suas representaçõesInterface UniformeGET http://api.piaz.com.br/ufoapi/v1/casos/1
    • Mensagens auto-descritivasInterface UniformeCabeçalhos e Status Codes do HTTP1xx - Informativo2xx - Sucesso3xx - Redirecionamento4xx - Erro do cliente5xx - Erro do servidor
    • http://stateless.co/hal_specification.htmlHALHypertext Application LanguageHATEOAS - Hypermedia as the Engine of Application StateInterface Uniforme{"_links": {"self": { "href": "/ufoapi/v1/casos/2" },"next": { "href": "/ufoapi/v1/casos/3" },"prev": { "href": "/ufoapi/v1/casos/1" },} ,}WRMLWeb resource modeling languagehttp://www.wrml.org/modelingLanguage
    • Richardson Maturity Model
    • E o FRAPI entra em cena!http://getfrapi.com
    • FRAMEWORK API
    • INSTALAÇÃO
    • INSTALAÇÃO / Requisitos mínimos○ Webserver (apache, nginx, iis)○ PHP >= 5.2.4○ gettext○ XMLWriter○ PEAR○ APC ** Pode ser instalado sem o APC ou com outromecanismo de caching mas não é recomendadohttp://frapi.github.com/installing/caching.htmlhttp://frapi.github.com/installing/index.html
    • git clone git://github.com/frapi/frapi.gitgit clone git://github.com/zaip/frapi.gitouwget https://github.com/frapi/frapi/tarball/mastertar -xzvf frapi-frapi-VERSION.tar.gzFRAPI_PATH = local/onde/voce/desempacotou/o/frapiINSTALAÇÃO / Obtendo o software
    • Interface administrativa API PúblicaCamadas de interação● Zend Framework● Actions e Errors● Autenticação● Documentação● Ambiente de testes● Produção● PHP● Cache● Request● ResponseInterface CLI● Admin via terminal
    • <VirtualHost *:80>ServerName admin.frapiDirectoryIndex index.phpServerAdmin admin@api.frapi# This should be omitted in the productionenvironmentSetEnv APPLICATION_ENV developmentDocumentRoot FRAPI_PATH/src/ frapi/admin/public<Directory FRAPI_PATH/src/frapi/admin/public>AllowOverride AllOrder deny,allowAllow from All</Directory></VirtualHost>Interface Administrativa<VirtualHost *:80>ServerName api.frapiServerAdmin admin@api.frapiDocumentRoot FRAPI_PATH/src/ frapi/public# This should be omitted in the productionenvironmentSetEnv APPLICATION_ENV development<Directory FRAPI_PATH/src/frapi/public>AllowOverride AllOrder deny,allowAllow from All</Directory></VirtualHost>API PúblicaINSTALAÇÃO / Configurando2 virtual hostPermissões de acessochown -R username.web-user FRAPI_PATHchmod 775 FRAPI_PATH/src/frapi/custom/Actionchmod 775 FRAPI_PATH/src/frapi/custom/Config/chmod 664 FRAPI_PATH/src/frapi/custom/Config/*.xml
    • Dá pra instalar sem 2 vhosts?http://www.felipemarques.com.br/tag/alex-piaz/SIM
    • INSTALAÇÃO / Finalizando
    • UFO APIPrincipais casos da Ufologia Mundial REST!CRUD
    • UFO APIModeloMensagens de erro (Not found [404] / NO PUT/DELETE/POST [405] )2 URLs === 2 actions//api.piaz.com.br/ufoapi/v1/casos (GET POST)//api.piaz.com.br/ufoapi/v1/casos/{id} (GET PUT DELETE)Complexidade vai na Query String//api.piaz.com.br/ufoapi/v1/casos?pais=BrasilPrincipais casos da Ufologia Mundial em ReSTFul!
    • UFO APIPrincipais casos da Ufologia Mundial REST!Custom_Model_Caso()getCasos()getCaso($id)getCasosPorPais($pais)insertCaso($data)updateCaso($id,$data)deleteCaso($id)
    • FRAPI_PATH/src/frapi/custom/Action
    • UFO APIPrincipais casos da Ufologia Mundial em ReSTFul!Métodos disponibilizados pelo FRAPIexecuteGet()executePost()executePut()executeDelete()executeHead()http://frapi.github.com/developing/coding-actions.html
    • UFO APIPrincipais casos da Ufologia Mundial em ReSTFul!Mensagens de errohttp://en.wikipedia.org/wiki/List_of_HTTP_status_codes
    • UFO APIAction Casos - http://ufo-api.piaz.com.br/casos (GET POST HEAD)
    • UFO APIAction Casos - http://api.piaz.com.br/ufoapi/v1/casos (GET)
    • UFO APIAction Casos - http://api.piaz.com.br/ufoapi/v1/casos (POST)
    • UFO APIAction Casos - http://api.piaz.com.br/ufoapi/v1/casos (HEAD)
    • UFO APIPrincipais casos da Ufologia Mundial ReST!http://api.piaz.com.br/ufoapi/v1/casos/{id} (POST PUT DELETE)
    • UFO APIAction Caso - http://api.piaz.com.br/ufoapi/v1/casos/{id} (GET)
    • UFO APIAction Caso - http://api.piaz.com.br/ufoapi/v1/casos/{id} (PUT)
    • UFO APIAction Caso - http://api.piaz.com.br/ufoapi/v1/casos/{id} (DELETE)
    • Gerando documentação...http://frapi-admin/docs/generate/format/texthttp://frapi-admin/docs/generate/format/htmlhttp://frapi-admin/docs/generate/format/mdownhttp://frapi-admin/docs/generate/format/pdf
    • Utilidadesimplementing-restExploring the implementation aspects of the REST architectural style.https://code.google.com/p/implementing-rest/PostMan - Rest Client para o Chromehttps://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcmTese do Roy Fieldling (nascimento do ReST)http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htmRichardson Maturity Modelhttp://martinfowler.com/articles/richardsonMaturityModel.htmlSwagger (Documentação para sua API)https://developers.helloreverb.com/swagger/API Best Praticeshttp://apigee.com/about/api-best-practicesHTTP (RFC 2616)http://tools.ietf.org/html/rfc2616
    • Arquivos desta palestrahttps://www.dropbox.com/sh/u0qqmm49ursrtpg/mofogHmsIi