SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Melhores Práticas em
WebAPIs para mobile

@ramcoelho
Apresentação


●   Graduado em Ciência da Computação
●   Fundador do grupo PHP-Maranhão
●   Representante do Maranhão em eventos nacionais
●   Representante do Maranhão no PHP Brasil Comunidades
●   Professor de Programação Web
●   Auditor certificado NBR ISO/IEC 27001:2006
●   Perito forense digital
●   CTO da Nexy, empresa de auditoria de segurança e tecnologia
    financeira com soluções SaaS em PHP.



       @ramcoelho
Mobile Web



         Desenvolvimento para Web
                    =
          Desenvolvimento Mobile




@ramcoelho
Exemplos API




@ramcoelho
Princípios




@ramcoelho
Métodos


●   RESTful Webservices
●   JSON vs XML
●   WebApp vs App
●   OAuth
●   Comunicação Anyway® vs Otimizada



     @ramcoelho
Ferramentas

●   Respect Validation (github.com/respect)


    //From 1 to 15 non-whitespace alphanumeric characters
    $validUsername = v::alnum()
               ->noWhitespace()
               ->length(1,15);

    $validUsername->validate('alganet'); //true




    @ramcoelho
Ferramentas

●   Respect Validation
●   Respect Rest (github.com/respect)
    use RespectRestRouter;

    $r3 = new Router;

    $r3->get('/users/*/lists/*', function($user, $list) {
        return "List {$list} from user {$user}";
    });




    @ramcoelho
Ferramentas

●   Respect Validation
●   Respect Rest
●   Grs (github.com/ramcoelho)

    $grs = new Grs();
    $grs->dispatch();

    // http://server/context/Class1/method1/param1/param2.json




    @ramcoelho
Ferramentas

●   Respect Validation
●   Respect Rest
●   Grs (github.com/ramcoelho)
    class Class1
    {
        public function method1($params)
        {
           return 'Getting ' . $param[1] . ' from ' . $param[0];
        }
    }


    @ramcoelho
Ferramentas

●   Respect Validation
●   Respect Rest
●   Grs
●   org.json.JSONObject, org.json.JSONTokener
●   Jackson, GSON



    @ramcoelho
Case Veritas




@ramcoelho
Obrigado!




@ramcoelho
Dúvidas



?        ?          ?       ?
                                ?
                                    ?
                        ?
?        ?         ?        ?   ?
                                    ?
    @ramcoelho

Contenu connexe

Similaire à Melhores práticas WebAPIs mobile

Construindo sua primeira ontologia
Construindo sua primeira ontologiaConstruindo sua primeira ontologia
Construindo sua primeira ontologiaRômulo Jales
 
O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]Filipe Ximenes
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a AspectosRicardo Terra
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012Luís Cobucci
 
TDD em JavaScript, rola?
TDD em JavaScript, rola?TDD em JavaScript, rola?
TDD em JavaScript, rola?Renan Siravegna
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
NOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com pythonNOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com pythonfelipe bastosweb
 
Django Tem Ritmo
Django Tem RitmoDjango Tem Ritmo
Django Tem Ritmoitalomaia
 
PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanosCaike Souza
 
Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008zehzinho
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado ServidorMario Guedes
 
Business Rules com Drools
Business Rules com DroolsBusiness Rules com Drools
Business Rules com Droolsrafaelliu
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosMarcel Caraciolo
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Julio Betta
 
PHP, mas o que é isso ?
PHP, mas o que é isso ?PHP, mas o que é isso ?
PHP, mas o que é isso ?phpal
 
Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoBernardo Fontes
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
 

Similaire à Melhores práticas WebAPIs mobile (20)

Construindo sua primeira ontologia
Construindo sua primeira ontologiaConstruindo sua primeira ontologia
Construindo sua primeira ontologia
 
O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012
 
TDD em JavaScript, rola?
TDD em JavaScript, rola?TDD em JavaScript, rola?
TDD em JavaScript, rola?
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Web open source
Web open sourceWeb open source
Web open source
 
NOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com pythonNOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com python
 
Construindo um sistema distribuido usando rest
Construindo um sistema distribuido usando restConstruindo um sistema distribuido usando rest
Construindo um sistema distribuido usando rest
 
Django Tem Ritmo
Django Tem RitmoDjango Tem Ritmo
Django Tem Ritmo
 
PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanos
 
Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
 
Business Rules com Drools
Business Rules com DroolsBusiness Rules com Drools
Business Rules com Drools
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
 
PHP, mas o que é isso ?
PHP, mas o que é isso ?PHP, mas o que é isso ?
PHP, mas o que é isso ?
 
Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazo
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on Rails
 

Plus de Ricardo Coelho

SaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarSaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarRicardo Coelho
 
Criando plugins jQuery
Criando plugins jQueryCriando plugins jQuery
Criando plugins jQueryRicardo Coelho
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLRicardo Coelho
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVNRicardo Coelho
 

Plus de Ricardo Coelho (6)

SaaS: funciona e eu vou provar
SaaS: funciona e eu vou provarSaaS: funciona e eu vou provar
SaaS: funciona e eu vou provar
 
Criando plugins jQuery
Criando plugins jQueryCriando plugins jQuery
Criando plugins jQuery
 
Wordpress101
Wordpress101Wordpress101
Wordpress101
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOL
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVN
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
 

Melhores práticas WebAPIs mobile

  • 1. Melhores Práticas em WebAPIs para mobile @ramcoelho
  • 2. Apresentação ● Graduado em Ciência da Computação ● Fundador do grupo PHP-Maranhão ● Representante do Maranhão em eventos nacionais ● Representante do Maranhão no PHP Brasil Comunidades ● Professor de Programação Web ● Auditor certificado NBR ISO/IEC 27001:2006 ● Perito forense digital ● CTO da Nexy, empresa de auditoria de segurança e tecnologia financeira com soluções SaaS em PHP. @ramcoelho
  • 3. Mobile Web Desenvolvimento para Web = Desenvolvimento Mobile @ramcoelho
  • 6. Métodos ● RESTful Webservices ● JSON vs XML ● WebApp vs App ● OAuth ● Comunicação Anyway® vs Otimizada @ramcoelho
  • 7. Ferramentas ● Respect Validation (github.com/respect) //From 1 to 15 non-whitespace alphanumeric characters $validUsername = v::alnum() ->noWhitespace() ->length(1,15); $validUsername->validate('alganet'); //true @ramcoelho
  • 8. Ferramentas ● Respect Validation ● Respect Rest (github.com/respect) use RespectRestRouter; $r3 = new Router; $r3->get('/users/*/lists/*', function($user, $list) { return "List {$list} from user {$user}"; }); @ramcoelho
  • 9. Ferramentas ● Respect Validation ● Respect Rest ● Grs (github.com/ramcoelho) $grs = new Grs(); $grs->dispatch(); // http://server/context/Class1/method1/param1/param2.json @ramcoelho
  • 10. Ferramentas ● Respect Validation ● Respect Rest ● Grs (github.com/ramcoelho) class Class1 { public function method1($params) { return 'Getting ' . $param[1] . ' from ' . $param[0]; } } @ramcoelho
  • 11. Ferramentas ● Respect Validation ● Respect Rest ● Grs ● org.json.JSONObject, org.json.JSONTokener ● Jackson, GSON @ramcoelho
  • 14. Dúvidas ? ? ? ? ? ? ? ? ? ? ? ? ? @ramcoelho