legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T....
Transcript of legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T....
![Page 1: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/1.jpg)
Evolução guiada por APIs Option #2Criando uma arquitetura híbrida com REST para modernizar seu legado
![Page 2: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/2.jpg)
Rodrigo● Engenheiro de Software na CI&T.
● Atuou na criação da FIFA World
Cup 2014 Happiness Flag da Coca
Cola.
● Atua em vários sistemas da NSK.
![Page 3: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/3.jpg)
Otoniel● Engenheiro de Software na CI&T.
● Participou da criação da FIFA World
Cup 2014 Happiness Flag.
● Certificado como Google Cloud
Developer em 2014.
● Com experiência em SOAP e REST,
atuou na NSK para conciliar as duas
tecnologias.
![Page 4: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/4.jpg)
Como uma API REST pode ajudar na evolução de um
sistema legado?
![Page 5: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/5.jpg)
O que é REST?
Estilo arquitetural
HTTP
Simples
Rápido
JSONAPI’s
![Page 6: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/6.jpg)
Contextualizando...
![Page 7: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/7.jpg)
![Page 8: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/8.jpg)
![Page 9: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/9.jpg)
O que são esses sistemas?
![Page 10: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/10.jpg)
Aplicações Web
SOAP/JMS
ERP
Manufatura
B2B Etiquetagem
Financeiro
Portal de Vendas
Transportadoras
BIPlanejamento
![Page 11: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/11.jpg)
Alguns númerosArquivos Linhas de Código
Java 17 mil 1,6 milhões
JSP 1 mil 173 mil
XML 117 36 mil
XSD 41 4 mil
Outros ... ...
Total 19 mil 1,9 milhões
![Page 12: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/12.jpg)
Aplicação
Struts
Form Bean
ActionHTML
![Page 13: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/13.jpg)
Struts e as dificuldades...
![Page 14: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/14.jpg)
Exemplo: Salvar um form com listas
![Page 15: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/15.jpg)
<html:form action="/save" ><logic:iterate id="user" name="usersForm"
property="users" indexId="usrId"><logic:iterate id="role" name="user" property="roles" indexId="rleId">
<bean:message key="label.role.name"/>
<input type="text"name="users[${usrId}].roles[${roleId}].name" value="${role.name}"/>
</logic:iterate></logic:iterate>
</html:form>
![Page 16: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/16.jpg)
public class UsersForm extends ValidatorForm {
private String name;
private List<User> users = null;
public User getUsers(int index) {
if(this.users == null) { this.users = new ArrayList<User>();
}
while (this.users.size() <= index) { this.users.add(new User()); }
return (User) this.users.get(index);}
}
![Page 17: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/17.jpg)
public class UsersAction {
protected ActionForward open (final ActionMapping mapping ,final ActionForm form, final HttpServletRequest request ,final HttpServletResponse response )
throws Exception {UsersForm formEditNaAsn = (UsersForm) form;
for (User user : usersForm.getUsers ()) {
//Faz algo com o userfor (Role role : user.getRoles()) {
//Faz algo com a role}
}
return mapping.getInputForward();}
}}
![Page 18: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/18.jpg)
Por que não eliminar o Struts?
![Page 19: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/19.jpg)
O que poderia resolver esses problemas?
![Page 20: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/20.jpg)
![Page 21: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/21.jpg)
Aplicação
Struts
Form Bean
Action
API REST
JSON
HTML
AngularJS
![Page 22: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/22.jpg)
API RESTStruts
AJAX
JSON
HTML
Requisição
![Page 23: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/23.jpg)
Aplicação
Struts
Form Bean
Action
API REST
JSON
HTML
AngularJS
Action
public class LoginAction {
protected ActionForward open(final ActionMapping mapping ,final ActionForm form, final HttpServletRequest request ,final HttpServletResponse response )
throws Exception {return mapping.getInputForward();
}}
}
![Page 24: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/24.jpg)
Aplicação
Struts
Form Bean
Action
API REST
JSON
HTML
AngularJS
<%@ taglib uri="/tags-html" prefix="html"%><%@ taglib uri="/tags-logic" prefix="logic"%>
<div ng-controller="loginController" ><html:form action="loginAction">
<div ng-repeat="role in roles"><span ng-bind=”role.name”></span>
</div>
</html:form>
<script src="js/loginController.js" ></script>HTML
![Page 25: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/25.jpg)
Aplicação
Struts
Form Bean
ActionHTML
API REST
JSONAngularJS
module.controller('loginController' , function($scope, $http) {
$http({
method: 'GET', url: '/rs/login/roles, }).success(function(roles) { $scope.roles = roles; });});AngularJS
![Page 26: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/26.jpg)
Aplicação
Struts
Form Bean
Action
API REST
JSON
HTML
AngularJS
@Path("/login")public class LoginResource {
@POST@Produces(MediaType.APPLICATION_JSON)@Path("/login")public LoginResponse login (LoginRequest loginRequest) {
return authenticator.login(loginRequest);}
@GET@Produces(MediaType.APPLICATION_JSON)public Role list() {
return authenticator.roles();}
}
API REST
![Page 27: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/27.jpg)
Minimizamos as dificuldades!
![Page 28: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/28.jpg)
REST x SOAP
![Page 29: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/29.jpg)
Exemplo de mensagem SOAP
<?xml version="1.0"?><soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:u="http://www.qconexample.com/user"> <u:User> <u:name>Otoniel</u:name> </u:User> </soap:Body>
</soap:Envelope>
![Page 30: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/30.jpg)
GET /users/otoniel{ "id" : 1, "name" : "Otoniel", "roles" : [ { "name" : "admin" } ]}
POST /users/otoniel{ "name" : "Otoniel da Silva", "roles" : [ { "name" : "admin" } ]}
PUT /users/otoniel{ "id" : 1, "name" : "Otoniel da Silva", "roles" : [ { "name" : "admin" } ]}
DELETE /users/otoniel{ "id" : 1}
![Page 31: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/31.jpg)
BackendSPA
Novas possibilidades!
HTML JSONAPI RESTful
![Page 32: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/32.jpg)
REST também nos levou a criar uma API de registro
de eventos! :)
![Page 33: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/33.jpg)
HTTP RequestPOST /events/create
{
"uid" : "dd8947f3-bc47-4a54-8bae-99758a710a23",
"userId" : "OTONIEL",
"dateTime" : "1335205592410",
"eventName" : "send_xml_to_ftp",
"message" : "<xml>...</xml>",
}
Logs da Aplicação
...
2015-03-18 17:21:20,222
[dd8947f3-bc47-4a54-8bae-99758a710a23]
INFO [SendXmlToFtpService: 72]: Sending file: new.xml
![Page 34: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/34.jpg)
Manufatura
B2B
Portal de Vendas
Mobile
Browser
Log de Eventos
![Page 35: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/35.jpg)
Então vale a pena usar uma API REST?
![Page 36: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/36.jpg)
● Facilitar o uso de frameworks MVC JavaScript.
● Mais fácil de expor serviços.● Produtivo e melhora a qualidade de
código.● Novidade tecnológica para os
desenvolvedores. :)
Benefícios
![Page 37: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/37.jpg)
● Múltiplas tecnologias convivendo.● Sistema muito grande e com alto valor
para o cliente.● Possibilidade de alguma falha na
modernização e impactar a entrega de novas funcionalidades.
Riscos
![Page 38: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/38.jpg)
Sim, vale a pena! ;)
![Page 39: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/39.jpg)
Perguntas?
![Page 40: legado com REST para modernizar seu Criando uma ......legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da Coca Cola. Atua em](https://reader033.fdocumentos.tips/reader033/viewer/2022053007/5f0b2b2a7e708231d42f2fb3/html5/thumbnails/40.jpg)
Obrigado!
Otoniel da Silvaemail: [email protected]: @otonielsilva
Rodrigo Silvaemail: [email protected]
Twitter: @rbsilvati