SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Rails as a Service
Mini-curso pros dahora de uébi
Quem sou eu?
• Developer por escolha
• Frequentador de bares “finos”
• Apaixonado por programar (em um caso
recente com ruby)
• Skatista aposentado
Por que eu estou aqui?
O que vamos ver?
• Um pouco sobre modelo REST
• Como o rails pode nos ajudar
• Pegando nosso cinto de utilidades :O
• Um verdade incoveniente
• Criando uma interface sem pensar no
backend :O (2)
O que é REST?
• A Transferência de Estado
Representativo (Representational State
Transfer) ou somente (REST) é uma técnica
de engenharia de software para sistemas
hipermídia distribuídos como a
World Wide Web. O termo se originou no ano
de 2000, em uma tese de doutorado1 (PHD)
sobre a web escrita por Roy Fielding, um dos
principais autores da especificaç ão do
protocolo HTTP que é utilizado por sites da
internet.
Mais didático por favor
• Basicamente, você representa
completamente (ou quase) a imagem do
seu website.Você representa ele em
DADOS.
O que são serviços
RESTFULL?
• Serviços RESTFULL são serviços que
expõe dados a um endpoint seguindo os
padrões do REST.
E o Rails, foi idealizado
a partir dessa
arquitetura
O que é SOAP?
• SOAP (Simple Object Access
Protocol, em português
Protocolo Simples de Acesso
a Objetos) é um protocolo para
troca de informaç ões estruturadas
em uma plataforma
descentralizada e distribuída.
Por que não?
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.2-b04</version>
</dependency>
<dependency>
<groupId>org.jboss.spec.javax.interceptor</groupId>
<artifactId>jboss-interceptors-api_1.2_spec</artifactId>
<version>1.0.0.Alpha3</version>
</dependency>
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>1.1-20130403</version>
</dependency>
<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-core</artifactId>
<version>2.0.0.CR2</version>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-arquillian-container-managed</artifactId>
<version>${jbossas.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-weld-se-embedded-1.1</artifactId>
<version>1.0.0.CR6</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav</artifactId>
<version>1.0-beta-2</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<id>enforce-java</id>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
<configuration>
<rules>
<requireJavaVersion>
<!-- require JDK 1.6 to run the build -->
<version>[1.6,)</version>
</requireJavaVersion>
</rules>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifestEntries>
<Implementation-Title>${project.artifactId}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Implementation-Vendor>${project.parent.groupId}</Implementation-Vendor>
<Implementation-Vendor-Id>${project.parent.groupId}</Implementation-Vendor-Id>
<Implementation-URL>http://validator.hibernate.org</Implementation-URL>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<configLocation>src/main/build-config/checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<violationSeverity>error</violationSeverity>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<!-- These classe s are imported from oth er sources and are not re -formatted-->
<excludes>**/ConcurrentReferenceHashMap.java,**/TypeHelper*.java</excludes>
</configuration>
<executions>
<execution>
<id>check-style</id>
<phase>verify</phase>
<goals>
<goal>checkstyle</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Run mvn animal-sniffer:ch eck to check th at o nly Java 1.6 APIs are use d -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<version>1.9</version>
<configuration>
<signature>
<groupId>org.codehaus.mojo.signature</groupId>
<artifactId>java16</artifactId>
<version>1.0</version>
</signature>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<forkMode>once</forkMode>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
<id>generate-test-report</id>
<phase>test</phase>
<goals>
<goal>report-only</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>${project.build.directory}/surefire-reports</outputDirectory>
<outputName>test-report</outputName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
</plugin>
<plugin>
Nosso cinto de
utilidade
• Rails 3.2.*
• Ruby 1.9.*
• ST 2
Objetivo
• Temos um cadastro de usuários
• Queremos listar os usuários
• Queremos listar seus tweets
Hands-On
Recursos Interessantes
• railscast.com
• Service-Oriented Design with Ruby and
Rails
• Google
• Lista de Discussões
• Hora do almoço
Obrigado
• pedro-souza.com
• @pedronicholas
• github/pnicholas

Weitere ähnliche Inhalte

Andere mochten auch (8)

Counter strike 1.6 Server Kurma
Counter strike 1.6 Server KurmaCounter strike 1.6 Server Kurma
Counter strike 1.6 Server Kurma
 
Creatifi fi presentation_fiware_meetup_creatifi_open_calls
Creatifi fi presentation_fiware_meetup_creatifi_open_callsCreatifi fi presentation_fiware_meetup_creatifi_open_calls
Creatifi fi presentation_fiware_meetup_creatifi_open_calls
 
UVU Design as Business Tool
UVU Design as Business ToolUVU Design as Business Tool
UVU Design as Business Tool
 
02. Conventions of a Thriller
02. Conventions of a Thriller02. Conventions of a Thriller
02. Conventions of a Thriller
 
01. Team Awesome Sauce
01. Team Awesome Sauce01. Team Awesome Sauce
01. Team Awesome Sauce
 
Mobilize Firefox OS - SETIC 2013
Mobilize Firefox OS - SETIC 2013Mobilize Firefox OS - SETIC 2013
Mobilize Firefox OS - SETIC 2013
 
Motor penggerak
Motor penggerakMotor penggerak
Motor penggerak
 
BRANDPOINT TANZANIA COMPANY PROFILE
BRANDPOINT TANZANIA COMPANY PROFILEBRANDPOINT TANZANIA COMPANY PROFILE
BRANDPOINT TANZANIA COMPANY PROFILE
 

Ähnlich wie Rails asservice

JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
Helder da Rocha
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
lucasbarsand
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturas
rafaslide
 

Ähnlich wie Rails asservice (20)

Laravel 5
Laravel 5Laravel 5
Laravel 5
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
 
Palestra institucional Interna | Meet and Greet
Palestra institucional Interna | Meet and GreetPalestra institucional Interna | Meet and Greet
Palestra institucional Interna | Meet and Greet
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e Prática
 
Webservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPWebservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHP
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
 
O BACK-END PERFEITO PARA APLICAÇÕES DELPHI E C++ BUILDER
O BACK-END PERFEITO PARA APLICAÇÕES DELPHI E C++ BUILDERO BACK-END PERFEITO PARA APLICAÇÕES DELPHI E C++ BUILDER
O BACK-END PERFEITO PARA APLICAÇÕES DELPHI E C++ BUILDER
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturas
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Web Services
Web ServicesWeb Services
Web Services
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
LightSwitch - O futuro do desenvolvimento rápido de aplicações
LightSwitch - O futuro do desenvolvimento rápido de aplicaçõesLightSwitch - O futuro do desenvolvimento rápido de aplicações
LightSwitch - O futuro do desenvolvimento rápido de aplicações
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Rails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de casoRails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de caso
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 

Rails asservice