API Development – Glossaries

In the API development world, we frequently hear many abbreviations which are important to know in terms of its full form and the definition of the same. Here I will try to put those abbreviations and small description about it. To work on API, one should have good understanding of the abbreviations which I am putting it here. 

Keyword Full Name Description
API Application Programming Interface It is an intermediary software that allows applications to talk to each other . There are many types of APIs like Java APIs, Web APIs (SOAP and REST), RPC
REST Representational State Transfer It is a software architectural style that suggest  set of constraint to be used to create webservices. If any webservice applies these constraint then it is called RESTFul Services
SOAP Simple Object Access Protocol It is a messaging protocol which is being used to exchange the structure information while working on Web Services. These are mainly Stateful Services. Uses XML to exchange the message
DDD Domain Driven Design It is an approach to software development and widely used in the micro services based architecture. It basically suggests to think application in perspective of domain and define definite boundaries of the domain before doing development
SDD Specification Driven Design It is also a software development process that uses API specification as a guide for implementation. If anything changes in the implementation then Specification needs to be updated first then development
CRUD Create Read Update Delete It is nothing but terminology which is being used for Creating, Updating , deleting or Reading any resource. this word commonly used in API Development, DB operations 
CORS  
Cross-origin Resource Sharing
It is a mechanism that allows restricted resources on the web page to be requested from another domain. Assume if one website is requesting data from another website and both are deployed in different Domain or network which are not trusted. then CORS needs to be enabled.
ESB Enterprise Service Bus It is an integration pattern where centralized software components perform integration to back-end system and make those integration and transformation available as Services for other systems to use. IBM, Mule , TIBCO etc provides standard ESB 
JSON  
Javascript Object Notation It is nothing but a lightweight data exchange format. which is a key - value pair and heavily used in the RESTFul APIs and other web based application development
JWT Javascript web token It is standard for safely passing in space constraint environment. Simplicity, Compactness and usability is the light of the architecture. Click here for more details 
HTML Hypertext Markup Language It is a standard markup language for documents designed to be displayed in the browser. For detail reading click here
HTTP Hypertext transfer protocol
It is application layer protocol for distributed, collaborative and hypermedia information systems. 
HATEOAS  
Hypermedia as the Engine of Application of State

RAML  
 RESTFul API Modeling Language
RESTful API Modeling Language is a YAML-based language for describing RESTful APIs. It provides all the information necessary to describe RESTful or practically RESTful APIs. More detail click here
URL Uniform Resource Location
It is basically a web address and reference to the web resource. Ex.  
URI Unified Resource Identifier
It is compact sequence of characters that identifies and abstract or physical resource.  Read this website for more detail
WSDL Web service Definition Language
It is used to describe the SOAP based web services. It provides the location of the service . It defines data types used in the services, data elements for each operation, operation that can be performed and protocol and data format for each type. 
XML  
Extensible Markup Language
It is also a markup language that define set of rules for encoding documents in format which is human and machine readable. Heavily used in Web services for format exchange and other documentation like ORM. More details 
YAML  
Yet Another Markup Language AML is a human-readable data-serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. More details
SOA Service Oriented Architecture It is again an architectural style where Services are provided to other components by application over the network using different-2 Communication channel. Every service logically represent the business activity, Self-Contained in the nature, Black box for the consumer and many consist many other services internally. Read service based architecture in detail here
gRPC gRPC, Remote procedure Call It is an open source RPC System for high performance framework that runs in any environment. You can look for more details here
OAuth2 OAuth2.0 It is a standard protocol for  Authorization for the API and Micro-services access. more details click here
GraphQL
It is a query language for your API and runtime for fulfilling those queries with existing data. More details click here



That's it for this article. 

Microservices Implementation using (Spring Boot and Cloud)

In recent years, microservices architecture has been a preferred choice for application development due to various advantage that architecture brings in. However, every architecture comes with various pain areas and microservices architecture is no different. In a microservices architecture, there are many independently developed services which will serve some specific functionality. These services will be deployed in different -2 Infrastructure and they would communicate with each other and some external system through API or Events to complete the system functionality. We should minimize this kind of direct dependencies on other microservices, but in some cases, it is unavoidable. So we need to managed these dependencies and this is where the microservices architecture principle comes into the picture and explains, what all concerns (Service Discovery, Circuit Breaker, Distributed Tracing, routing, Connector, Configurations) need to be considered while developing and deploying these small services. 

So, here I am trying to depict the diagram, how can microservices be built using Spring boot and be deployed and managed using Spring Cloud.