Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Construindo APIs profissionais em Java

No description

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Construindo APIs profissionais em Java

Construindo APIs profissionais em Java
APIs: para que servem?
APIs
Especificam como componentes de software interagem entre si.
Quem sou eu
Meu produto
Tudo começa quando construímos algo valioso pra alguém...
Mas para quem?
* O produto é público ou interno?
* Quem são meus usuários?
* Quais são os segmentos de clientes?
* Quais são as linhas de receita?
* Quais são os canais de distribuição?
Engenheiro eletrônico e de computação
Sócio-diretor da Rivendel Tecnologia
11 anos de experiência com Java
6 anos com desenvolvimento ágil e inovação
Palestrante e colunista de revistas
Autor de livro sobre AWS
Grande experiência construindo APIs
E eu preciso saber tudo isso??
Só se vc estiver construindo um negócio do jeito certo!
Segurança
De quanto precisamos?
API pública ou privada?
Quão sensíveis são os dados?
Exigência regulatória ou contratual?
API abre brecha para sistemas internos?
Privacidade de usuários
Escolha da implementação
* REST?
* WS-*?
* protocolo nativo?
Envolve dinheiro?
REST
Client
Data
Server
Server
Client
Data
SOAP
WS-*
Em Java
Em Java
Web frameworks
Formatos
Roteamento de chamadas?
ProgrammableWeb Survey
Quero uma API REST em Java
Servlet
container
JDK 5+
JAX-RS
nada?
Modelar recursos e interações entre eles
Evento
Pessoa
Participação
Equipe
URIs expressivas
POST /evento
GET /evento/{id}/pessoas
PUT /evento/{id}/pessoas/{id}/participacao
DELETE /equipe/{id}/pessoas/{id}
Convention over configuration
Injeção de dependências
Controle transacional declarativo
Operações stateless
Monitoramento e tuning de JVM
etc
etc
etc
Mas e a segurança?
Firewall
Security
group
LB
Audit log
IP filtering
HTTPS
HTTP Basic
HTTP
Digest
Certificados
Token
based
OAuth
Todas facilmente implementadas com JAX-RS
OK
Bad Request
Created
Not Modified
Unauthorized
Conflict
Internal
Server Error
HATEOAS
Como descrever os serviços?
Recursos
Métodos
Formatos
Schemas
Swagger
people
orgs
events
locations
blog posts
recipes
Recursos
linkados
Links expressivos e padrão
Links permitem aplicações stateful compostas de múltiplas requisições stateless
Transações em REST
são oxímoro?
It can be done
Try, cancel, confirm
Eu e Luca em 2011
HATEOAS
+
JAX-RS
UriBuilder + UriInfo
Ainda muito customizado
Expires
gzip
Etag
Design
for
failure

RDS
NoSql
CloudDB
Mensageria
cache
local
cache
distribuído
CloudWatch
bruno@rivendel.com.br
@blpsilva
http://www.rivendel.com.br
http://blog.rivendel.com.br
Bruno Pereira
Full transcript