Projeto base para API RESTful usando JAX-RS, CDI, EJB e openAPI + swagger
Base do projeto - API RESTFul
Implementações defaults
- CDI 1.2
- JPA 2.1
- Beans Validations 1.1
- JAX-RS 2.1
- Swagger e open API
Referencias
DDD
- http://www.agileandart.com/2010/07/16/ddd-introducao-a-domain-driven-design/
- https://www.infoq.com/br/articles/ddd-10-anos
CDI
- https://docs.jboss.org/cdi/learn/userguide/CDI-user-guide.html o conteudo desse link é bem completo, porém em ingles, um fonte em portugues é http://www.devmedia.com.br/java-ee-6-e-o-cdi-contexts-and-dependency-injection/1823
JPA implementação Hibernate Entity Manager
- Resumo em portugues https://pep.ifsp.edu.br/moodledata/filedir/d4/a7/d4a749abdb746d2066401a8fe14e0eb8578fa9c2
- User guide Hibernate http://docs.jboss.org/hibernate/orm/5.0/userguide/html_single/Hibernate_User_Guide.html
- Modelage Hibernate http://docs.jboss.org/hibernate/orm/5.0/mappingGuide/en-US/html_single/
Beans Validation
- https://docs.oracle.com/javaee/7/tutorial/partbeanvalidation.htm#sthref1322
- https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-builtin-constraints
JAX-RS implementação RestEasy
- RestEasy server https://docs.jboss.org/resteasy/docs/3.0.6.Final/userguide/html_single/index.html
- RestEasy client https://docs.jboss.org/resteasy/docs/3.0-beta-3/userguide/html/RESTEasy_Client_Framework.html
- Resumo https://dennis-xlc.gitbooks.io/restful-java-with-jax-rs-2-0-2rd-edition/en/index.html
Swagger
- https://swagger.io/
- Configurando com resteasy https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-RESTEasy-2.X-Project-Setup-1.5#using-the-application-class
- Documentando por annotation https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X
- Exemplos https://github.com/swagger-api/swagger-samples/tree/master/java
- https://www.openapis.org/
Material para estudo
Boas praticas
- SOLID https://www.infoq.com/br/presentations/principios-solid
- DDD http://www.agileandart.com/2010/07/16/ddd-introducao-a-domain-driven-design/
Java 8
- http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html
- https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
- http://blog.caelum.com.br/o-minimo-que-voce-deve-saber-de-java-8/
- http://blog.caelum.com.br/conheca-a-nova-api-de-datas-do-java-8/
- http://blog.caelum.com.br/manipulando-arquivos-com-recursos-do-java-8/
Java
-
http://www.devmedia.com.br/visao-geral-da-interface-collection-em-java/25822
-
https://www.caelum.com.br/apostila-java-orientacao-objetos/pacote-java-io/
-
https://www.infoq.com/br/presentations/encapsulamento-em-java-ee
API RESTFul
- https://blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/
- Status code http://www.restapitutorial.com/httpstatuscodes.html
- https://www.infoq.com/br/interviews/cenario-atual-de-implementacao-de-apis-no-brasil?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=interviews_link&utm_content=link_text
- https://dennis-xlc.gitbooks.io/restful-java-with-jax-rs-2-0-2rd-edition/en/index.html
Convenções
- Json http://json-schema.org/
- Versionamento Semântico http://semver.org/lang/pt-BR/
Livros