Spring Boot Actuator - In essence, Actuator brings production-ready features to our application. Monitoring our app, gathering metrics, understanding traffic, or the state of our database become trivial with this dependency. The main benefit of this library is that we can get production-grade tools without having to actually implement these features ourselves. Actuator is mainly used to expose operational information about the running application — health, metrics, info, dump, env, etc. It uses HTTP endpoints or JMX beans to enable us to interact with it.
Add this property to expose all the URLs - management.endpoints.jmx.exposure.include=*
Spring Boot HAL Explorer
The HAL model revolves around two simple concepts.
Resources, which contain:
- Links to relevant URIs
- Embedded Resources
- State
Links:
- A target URI
- A relation, or rel, to the link
- A few other optional properties to help with depreciation, content negotiation, etc
The HAL browser was created by the same person who developed HAL and provides an in-browser GUI to traverse your REST API.
Versioning
- Media type versioning (a.k.a “content negotiation” or “accept header”) - GitHub
- (Custom) headers versioning - Microsoft
- URI Versioning - Twitter
- Request Parameter versioning - Amazon
Factors - URI Pollution,Misuse of HTTP Headers,Caching,Can we execute the request on the browser?,API Documentation
More
- https://www.mnot.net/blog/2011/10/25/web_api_versioning_smackdown
- http://urthen.github.io/2013/05/09/ways-to-version-your-api/
- http://stackoverflow.com/questions/389169/best-practices-for-api-versioning
- http://www.lexicalscope.com/blog/2012/03/12/how-are-rest-apis-versioned/
- https://www.3scale.net/2016/06/api-versioning-methods-a-brief-reference/
Microservices Challenges
- Bounded Context
- Configuration Manangement
- Dynamic Scale Up and Scale Down
- Visibility
- Pack of Cards - How one microservice fault can take down all the microservices
Microservices Advantages
- New Technology and Process Adaption
- Dynamic Scaling