SlideShare uma empresa Scribd logo
VOCÊ NÃO DEVERIA ESCREVER UMA API
PARA ISSO!
MUITAS E MUITAS APPS
Identificar os
pontos que
contribuíram com
a evolução do
front-end.
PAUTA
Apresentar
conceitos e
ferramentas que
possam ajudar em
nossa jornada.
PAUTA
Apontar uma
possível direção
para as coisas.
PAUTA
@juniorconte
A EVOLUÇÃO DO FRONT-END
OS DEVICES E AS
PLATAFORMAS
EVOLUÍRAM
Gigabytes & multi cores
OS DEVICES E AS
PLATAFORMAS
EVOLUÍRAM
Conectividade & mobilidade
OS DEVICES E AS
PLATAFORMAS
EVOLUÍRAM
HTML5, CSS3 & V8
AMPLIAÇÃO DO
PORTFÓLIO DE
FERRAMENTAS
Generators, dependencias &
tasks runners
AMPLIAÇÃO DO
PORTFÓLIO DE
FERRAMENTAS
Frameworks & bibliotecas
O BROWSER
GANHOU O MUNDO
Cordova, Titanium & Ionic
O BROWSER
GANHOU O MUNDO
Electron & NodeJS
CLOUD COM PREÇO
JUSTO
Pague pelo que usar
CLOUD COM PREÇO
JUSTO
Escale o quanto precisar
CLOUD COM PREÇO
JUSTO
Next, next, finish
UM BOOM DE NOVAS IDÉIAS
VOU "ESCULPIR" MINHA PRÓPRIA API
ISSO PODE FICAR MAIOR QUE O IMAGINADO
API BASEADA EM
ARQUIVO JSON
JSON Server
github.com/typicode/json-server
GET A FULL FAKE REST API WITH
ZERO CODING IN LESS THAN 30
SECONDS (SERIOUSLY)
CRIE UMA API REST FULL COMPLETA,
COM ZERO DE CODIFICAÇÃO EM
MENOS DE 30 SEGUNDOS (SÉRIO)
$ npm install -g json-server
{
"posts": [
{ "id": 1, "title": "json-server", "author": "typicode" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 }
],
"profile": { "name": "typicode" }
}
db.json
$ json-server --watch db.json
http://localhost:3000
{
"id": 1,
"title": “json-server",
"author": “typicode”
}
GET /posts/1
REST Ful, Filter, Slice,
Sort, Operators, Full-text
search, Relationships,
Extras
{
"id": 1,
"title": “json-server",
"author": “typicode”,
"comments": [
{
"id": 1,
"body": "some comment”,
”postId": 1
}
]
}
GET /posts/1?_embed=comments
API BASEADA EM
BANCOS DE DADOS
ArrestDB
github.com/alixaxel/ArrestDB
ARRESTDB IS A "PLUG-N-PLAY"
RESTFUL API FOR SQLITE, MYSQL AND
POSTGRESQL DATABASES
ARRESTDB É UMA API REST FULL
“PLUG-AND-PLAY” PARA BANCOS DE
DADOS SQLITE, MYSQL E POSTGRESQL
Apache + PHP 5.4 & PDO +
Banco de dados
SQLite: $dsn = ‘sqlite://./path/to/database.sqlite';
MySQL: $dsn = ‘mysql://[user[:pass]@]host[:port]/db/;
PostgreSQL: $dsn = ‘pgsql://[user[:pass]@]host[:port]/db/;
index.php
$clients = array
(
'127.0.0.1',
'127.0.0.2',
'127.0.0.3',
);
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>
.htaccess
(C)reate > POST /table
(R)ead > GET /table[/id]
(R)ead > GET /table[/column/content]
(U)pdate > PUT /table/id
(D)elete > DELETE /table/id
REST Ful
by, order, limit, offset
EU PRECISO
DE MAIS DO
QUE UM JSON
PARA SER
FELIZ
API BASEADA EM
BANCOS SQL/NOSQL
Related, filters, fields,
expressions, limit, offset,
bulk change, procedures,
views e mais…
API FILES
Download e upload para
cloud services ou local file
API NOTIFICATIONS
Envio de push notifications
API EMAIL
Envio de emails com
suporte a templates
gerenciáveis
API PROXY
Centraliza a autenticação
sem adicionar ms
POLÍTICAS DE
ACESSO BASEADA
EM ROLES
Serviço, recurso, ação,
origem e filtros
AUTENTICAÇÃO
FLEXÍVEL
Oauth, LDAP, JWT, Single
Sign-on
DOCUMENTAÇÃO
AUTOMÁTICA
Swagger live doc
GERENCIAMENTO DE
MÚLTIPLAS APPS
Cada usuário pode ter ou
não acesso a uma APP
EVENT E CUSTOM
SCRIPTS
Before e after actions,
custom API's
platform.api.post('email', {
template: ‘bem vindo',
to: [
{
name:’Junior Conte',
email:’juniorcnt@gmail.com’
}
]
});
Scripts em PHP ou JS
VÁRIOS
INSTALADORES
Bitnami cloud installers,
multi plataforma, github,
VMs e Docker
5 PROJETOS EM PRODUÇÃO
AO LONGO DO ÚLTIMO ANO
APP’S MAIS
ESPECÍFICAS
Simples de desenvolver
APP’S MAIS
ESPECÍFICAS
Divisíveis entre times
APP’S MAIS
ESPECÍFICAS
Permitem experimentação
API’S MAIS
GENÉRICAS
Simplesmente REST ful
API’S MAIS
GENÉRICAS
Menos acoplamento
API'S PARA TODOS*,
APP'S PARA POUCOS
* Quase todos
O CONCEITO DE
MICROSERVICES
APLICADO EM APPS
Você não deveria escrever uma API para isso
Você não deveria escrever uma API para isso

Mais conteúdo relacionado

Semelhante a Você não deveria escrever uma API para isso

Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
thiagolima
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
João Moura
 

Semelhante a Você não deveria escrever uma API para isso (20)

Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JS
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + Mongoose
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
 
Plack
PlackPlack
Plack
 
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPNovidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHP
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com Python
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHP
 

Você não deveria escrever uma API para isso