Web Services em PHP

Propaganda
Web Services em PHP
APIs para a web moderna
Lorna Jane Mitchell
Novatec
Authorized Portuguese translation of the English edition of titled PHP Web Services, ISBN 9781449356569
© 2013 Lorna Jane Mitchell. This translation is published and sold by permission of O'Reilly Media, Inc.,
the owner of all rights to publish and sell the same.
Tradução em português autorizada da edição em inglês da obra PHP Web Services, ISBN 9781449356569
© 2013 Lorna Jane Mitchell. Esta tradução é publicada e vendida com a permissão da O'Reilly Media,
Inc., detentora de todos os direitos para publicação e venda desta obra.
© Novatec Editora Ltda. [2013].
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução
desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da
Editora.
Editor: Rubens Prates
Tradução: Lúcia Ayako Kinoshita
Revisão técnica: Aurelio Jargas
Revisão gramatical: Marta Almeida de Sá
Editoração eletrônica: Carolina Kuwabata
ISBN: 978-85-7522-369-7
Histórico de impressões:
Junho/2013
Primeira edição
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Fax: +55 11 2950-8869
E-mail: [email protected]
Site: www.novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
VC20130610
Sumário
Prefácio...................................................................................................................9
Capítulo 1 ■ HTTP...................................................................................................14
Clientes e servidores................................................................................. 17
Fazendo solicitações HTTP......................................................................18
Curl...................................................................................................18
Ferramentas para navegadores............................................................. 21
PHP...................................................................................................23
Capítulo 2 ■ Verbos HTTP........................................................................................27
Fazendo solicitações GET.........................................................................27
Fazendo solicitações POST.......................................................................30
Usando outros verbos HTTP....................................................................33
Capítulo 3 ■ Cabeçalhos..........................................................................................36
Cabeçalhos de solicitação e de resposta.....................................................37
Cabeçalhos HTTP comuns.......................................................................38
User-Agent.........................................................................................38
Cabeçalhos para negociação de conteúdo.............................................40
Garantindo a segurança das solicitações com o cabeçalho Authorization....45
Cabeçalhos customizados.........................................................................47
Capítulo 4 ■ Cookies................................................................................................49
Mecanismos dos cookies..........................................................................49
Trabalhando com cookies no PHP............................................................52
Capítulo 5 ■ JSON....................................................................................................54
Quando optar pelo JSON.........................................................................55
Lidando com JSON no PHP.....................................................................56
JSON em APIs existentes..........................................................................58
5
6
Web Services em PHP
Capítulo 6 ■ XML.....................................................................................................61
Quando optar pelo XML..........................................................................63
XML no PHP...........................................................................................64
XML em APIs existentes...........................................................................64
Capítulo 7 ■ Serviços RPC e SOAP.............................................................................68
RPC....................................................................................................... 68
SOAP...................................................................................................... 71
WSDL................................................................................................72
Cliente SOAP em PHP........................................................................73
Servidor SOAP em PHP...................................................................... 74
Gerando um arquivo WSDL a partir do PHP........................................75
Cliente e servidor em PHP usando WSDL............................................78
Capítulo 8 ■ REST....................................................................................................79
URLs RESTful.........................................................................................80
Estrutura de recursos e hipermídia........................................................... 81
Tipos de dado e de mídia.........................................................................85
Recursos do HTTP em REST................................................................... 86
Criar recursos.....................................................................................87
Ler registros....................................................................................... 88
Atualizar registros...............................................................................89
Apagar registros................................................................................. 90
Cabeçalhos adicionais em serviços RESTful............................................. 90
Cabeçalhos de autorização.................................................................. 91
Cabeçalhos para caching.....................................................................92
RESTful versus utilidade..........................................................................94
Capítulo 9 ■ Depurando web services......................................................................95
Saída para depuração.............................................................................. 96
Geração de log.........................................................................................97
Depurando de fora de seu aplicativo.........................................................99
Wireshark.........................................................................................100
Charles Proxy................................................................................... 103
Encontrando a ferramenta ideal.............................................................. 107
Sumário
Capítulo 10 ■ Tomando decisões sobre design de serviços......................................108
Decisões sobre o tipo de serviço.............................................................. 109
Considere os formatos de dados..............................................................110
Experiências customizáveis...................................................................... 111
Defina o comportamento padrão.............................................................113
Capítulo 11 ■ Criando um serviço robusto..............................................................114
Consistência é fundamental....................................................................114
Nomenclatura consistente e significativa.............................................115
Regras comuns de validação...............................................................116
Estruturas previsíveis.........................................................................117
Tomando decisões de design quanto à robustez........................................118
Capítulo 12 ■ Tratamento de erros em APIs............................................................119
Formato de saída....................................................................................119
Mensagens de erro significativas............................................................. 123
O que fazer quando você detectar erros................................................... 125
Capítulo 13 ■ Documentação................................................................................126
Documentação geral.............................................................................. 126
Documentação da API............................................................................ 127
Documentação interativa........................................................................ 129
Tutoriais e o ecossistema mais amplo.......................................................131
Apêndice A ■ Guia para códigos de status comuns..................................................132
Apêndice B ■ Cabeçalhos HTTP comuns.................................................................134
7
Download