SlideShare uma empresa Scribd logo
1 de 78
Baixar para ler offline
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
API em JSON e bancos de dados
API em JSON e bancos de dados

Mais conteúdo relacionado

Semelhante a API em JSON e bancos de dados

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 MongoDBAri Stopassola Junior
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 
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.JSMatheus Donizete
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
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 terEmerson Macedo
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseLuiz Duarte
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
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 WorkshopAlexei Znamensky
 
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
 
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 PHPLuiz Henrique Zambom Santana
 
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 2010Emerson Macedo
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScriptHeider Lopes
 
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 PythonBruno Rocha
 
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 & DockerGiovanni Kenji Shiroma
 
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...BrunoSouza617
 
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 PHPAdler Medrado
 

Semelhante a API em JSON e bancos de dados (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
 

API em JSON e bancos de dados