SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
PROGRAMANDO COM SWAGGER E GO
Bruno Ferrari
The World's Most Popular Framework for APIs.
About me
@brferrari
Software Developer (Contractor) @ Novatrix Technologies
Android Project Reviewer @ Udacity
Mas afinal, o que é esse tal de Swagger?
- É um conjunto de regras, ou especificações para APIs REST
- Legível tanto por humanos quanto por máquinas
- Especialmente poderoso para criação/manutenção de
documentações
- Ótimo para automatizar processos relacionados às APIs
Por que devo começar a utilizar Swagger
para escrever minhas APIs?
- Linguagem simples e amigável (YAML / JSON)
- Facilidade de integração em ambientes de desenvolvimento
- Mantido e voltado para a comunidade
- Grande conjunto de ferramentas para integração open source e
commercial
E o mais importante...
- Ciclo de vida da API
- Design
- Documentação
- Geração de código
- Testes
- Gerenciamento da API
- Monitoramento
E o que Go tem a ver?
- Swagger pode gerar código em diversas linguagens
- Go é simples e incorpora o melhor dos dois mundos
- Performance
- Legibilidade de código
- Concorrência
- Mercurius (Novatrix)
- github.com/novatrixtech/mercurius
E como eu desenvolvo minha API do zero
com Swagger?
Script YAML + Swagger Editor
- Prefira YAML ao JSON
- Swagger editor
- Online (editor.swagger.io)
- Docker
- Local
- Documentação renderizada em real-time
YAML
Mercurius
- Baseado no Macaron
- Fornece uma maneira mais simples de roteamento
- Suporte à MySQL e PostgreSQL
- I18n e OAuth
- Simples de usar
- Open source "github.com/novatrixtech/mercurius"
Tá, mas e aí?
java -jar
modules/swagger-codegen-cli/target/swagger-codegen-cli.jar
generate -i <project-path>/swagger.yaml -l
mercurius-go-server -o <project-path>
OK, STOP TALKING AND SHOW ME THE CODE!!
OBRIGADO!!!
Bruno Ferrari
@brferrari
E-mail: b_ferrari@live.com
http://swagger.io
https://golang.org
https://github.com/novatrixtech/mercurius

Mais conteúdo relacionado

Mais procurados

Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2André Dias
 
Tudo o que você precisa saber para começar a automação de testes em dispositi...
Tudo o que você precisa saber para começar a automação de testes em dispositi...Tudo o que você precisa saber para começar a automação de testes em dispositi...
Tudo o que você precisa saber para começar a automação de testes em dispositi...Elias Nogueira
 
Criando app mobile com Google Android - Software Freedom Day 2015
Criando app mobile com Google Android - Software Freedom Day 2015 Criando app mobile com Google Android - Software Freedom Day 2015
Criando app mobile com Google Android - Software Freedom Day 2015 Lucas Aquiles
 
Apresentação tdc 2016 - trilha de testes
Apresentação tdc   2016 - trilha de testesApresentação tdc   2016 - trilha de testes
Apresentação tdc 2016 - trilha de testesSamuel Lucas
 
Conectando jBPM com o mundo - TDC 2014 SP
Conectando jBPM com o mundo - TDC 2014 SPConectando jBPM com o mundo - TDC 2014 SP
Conectando jBPM com o mundo - TDC 2014 SPjesuinoPower
 
QA Ninja Conf - Scrum uma Introdução a Agilidade
QA Ninja Conf - Scrum uma Introdução a AgilidadeQA Ninja Conf - Scrum uma Introdução a Agilidade
QA Ninja Conf - Scrum uma Introdução a AgilidadeThiago Boschese
 
Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014Elias Nogueira
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app HíbridaElias Nogueira
 
Deixando de publicar em horas para publicar em minutos
Deixando de publicar em horas para publicar em minutosDeixando de publicar em horas para publicar em minutos
Deixando de publicar em horas para publicar em minutosVandre Ramos, MSc, MBA, CSM
 
Introdução ao LiveOak
Introdução ao LiveOakIntrodução ao LiveOak
Introdução ao LiveOakjesuinoPower
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento4Soft
 
Trabalho Framework Web mobile puc
Trabalho Framework Web mobile pucTrabalho Framework Web mobile puc
Trabalho Framework Web mobile pucMateus Ramos
 
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.Cristofer Sousa
 
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017Cesar Augusto Nogueira
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1Lucas Aquiles
 

Mais procurados (20)

Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
 
Tudo o que você precisa saber para começar a automação de testes em dispositi...
Tudo o que você precisa saber para começar a automação de testes em dispositi...Tudo o que você precisa saber para começar a automação de testes em dispositi...
Tudo o que você precisa saber para começar a automação de testes em dispositi...
 
Criando app mobile com Google Android - Software Freedom Day 2015
Criando app mobile com Google Android - Software Freedom Day 2015 Criando app mobile com Google Android - Software Freedom Day 2015
Criando app mobile com Google Android - Software Freedom Day 2015
 
Apresentação tdc 2016 - trilha de testes
Apresentação tdc   2016 - trilha de testesApresentação tdc   2016 - trilha de testes
Apresentação tdc 2016 - trilha de testes
 
Conectando jBPM com o mundo - TDC 2014 SP
Conectando jBPM com o mundo - TDC 2014 SPConectando jBPM com o mundo - TDC 2014 SP
Conectando jBPM com o mundo - TDC 2014 SP
 
Grunt
GruntGrunt
Grunt
 
QA Ninja Conf - Scrum uma Introdução a Agilidade
QA Ninja Conf - Scrum uma Introdução a AgilidadeQA Ninja Conf - Scrum uma Introdução a Agilidade
QA Ninja Conf - Scrum uma Introdução a Agilidade
 
Micro serviços alterando seu mindset de tester
Micro serviços alterando seu mindset de testerMicro serviços alterando seu mindset de tester
Micro serviços alterando seu mindset de tester
 
Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014Automação de Teste com Robotium - Tche Mobile 2014
Automação de Teste com Robotium - Tche Mobile 2014
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
 
Deixando de publicar em horas para publicar em minutos
Deixando de publicar em horas para publicar em minutosDeixando de publicar em horas para publicar em minutos
Deixando de publicar em horas para publicar em minutos
 
Introdução ao LiveOak
Introdução ao LiveOakIntrodução ao LiveOak
Introdução ao LiveOak
 
Phonegap
PhonegapPhonegap
Phonegap
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento
 
Trabalho Framework Web mobile puc
Trabalho Framework Web mobile pucTrabalho Framework Web mobile puc
Trabalho Framework Web mobile puc
 
Desafio dos testes em uma arquitetura de micro serviços
Desafio dos testes em uma arquitetura de micro serviçosDesafio dos testes em uma arquitetura de micro serviços
Desafio dos testes em uma arquitetura de micro serviços
 
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
 
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
Se tornando um desenvolvedor Java Ninja - Trilha Java - TDC2017
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 

Destaque

Intro to Web Services - 2015 STC Summit talk
Intro to Web Services - 2015 STC Summit talkIntro to Web Services - 2015 STC Summit talk
Intro to Web Services - 2015 STC Summit talkEd Marshall
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIsamesar0
 
ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale Subbu Allamaraju
 
Cloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark AnalyticsCloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark Analyticsamesar0
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureKelly Goetsch
 

Destaque (6)

Intro to Web Services - 2015 STC Summit talk
Intro to Web Services - 2015 STC Summit talkIntro to Web Services - 2015 STC Summit talk
Intro to Web Services - 2015 STC Summit talk
 
Swagger
SwaggerSwagger
Swagger
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIs
 
ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale
 
Cloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark AnalyticsCloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark Analytics
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 

Semelhante a Programando com swagger e go DevFestSP '16

DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsJúnior Porfirio
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Renato Groff
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webMiguel Galves
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019Renato Groff
 
Marketing digital tecnologia da informação
Marketing digital   tecnologia da informaçãoMarketing digital   tecnologia da informação
Marketing digital tecnologia da informaçãoAna Paula Coelho Barbosa
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livreRuan Carvalho
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software LivreRuan Carvalho
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosFelipe J. R. Vieira
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B Rguestb9d145
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G Ofabio.thomaz
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Renato Groff
 
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...Thiago Barros, PSM
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Renato Groff
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019Renato Groff
 
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020Renato Groff
 

Semelhante a Programando com swagger e go DevFestSP '16 (20)

DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
 
Março 2016 - Como testar sua API Rest
Março 2016 - Como testar sua API RestMarço 2016 - Como testar sua API Rest
Março 2016 - Como testar sua API Rest
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento web
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Outubro-2019
 
Marketing digital tecnologia da informação
Marketing digital   tecnologia da informaçãoMarketing digital   tecnologia da informação
Marketing digital tecnologia da informação
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de Aplicativos
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G O
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
 
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
Apresentação desenvolvimento de plataforma para comandar microcontroladores e...
 
SPA com CSharp
SPA com CSharpSPA com CSharp
SPA com CSharp
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Julho-2019
 
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
 

Programando com swagger e go DevFestSP '16

  • 1. PROGRAMANDO COM SWAGGER E GO Bruno Ferrari The World's Most Popular Framework for APIs.
  • 2. About me @brferrari Software Developer (Contractor) @ Novatrix Technologies Android Project Reviewer @ Udacity
  • 3. Mas afinal, o que é esse tal de Swagger? - É um conjunto de regras, ou especificações para APIs REST - Legível tanto por humanos quanto por máquinas - Especialmente poderoso para criação/manutenção de documentações - Ótimo para automatizar processos relacionados às APIs
  • 4. Por que devo começar a utilizar Swagger para escrever minhas APIs? - Linguagem simples e amigável (YAML / JSON) - Facilidade de integração em ambientes de desenvolvimento - Mantido e voltado para a comunidade - Grande conjunto de ferramentas para integração open source e commercial
  • 5. E o mais importante... - Ciclo de vida da API - Design - Documentação - Geração de código - Testes - Gerenciamento da API - Monitoramento
  • 6. E o que Go tem a ver? - Swagger pode gerar código em diversas linguagens - Go é simples e incorpora o melhor dos dois mundos - Performance - Legibilidade de código - Concorrência - Mercurius (Novatrix) - github.com/novatrixtech/mercurius
  • 7. E como eu desenvolvo minha API do zero com Swagger?
  • 8. Script YAML + Swagger Editor - Prefira YAML ao JSON - Swagger editor - Online (editor.swagger.io) - Docker - Local - Documentação renderizada em real-time
  • 9.
  • 10. YAML
  • 11. Mercurius - Baseado no Macaron - Fornece uma maneira mais simples de roteamento - Suporte à MySQL e PostgreSQL - I18n e OAuth - Simples de usar - Open source "github.com/novatrixtech/mercurius"
  • 12. Tá, mas e aí? java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i <project-path>/swagger.yaml -l mercurius-go-server -o <project-path>
  • 13. OK, STOP TALKING AND SHOW ME THE CODE!!