Monday, July 22, 2019

API - Hypermedia Specifications

To make Hypermedia implementation easier, there are linking specifications already in existence. Each specification is slightly different. Let's try to compare different -2 specifications.

Referenced from Undisturbed Rest


Strength
Weaknesses
Collection + JSON
         Strong choice for Collections
         Templated queries
         Early wide adoption
         Recognized as a standard
         JSON only
         Lack of identifier for documentation
         More complex/ difficult to implement
HAL
         Dynamic
         Nestable
         Easy to read/implement
         Multi-format
         URL templating
         Inclusion of documentation
         Wide adoption
         Strong community
         Recognized as a standard hypermedia spec
         RFC proposed
         JSON/XML format architecturally different
         CURIE’s are tightly coupled
JSON LD
         Strong format for data linking
         Can be used across multiple data formats
         Strong community
         Large working groups
         Recognized by W3C as standard
         JSON-Only
         More complex to integrate/interpret
         No identifier for documentation
CPHL
         Designed for cross-platform consistency; allows loosely coupled documentation
         Incorporates API Definitions
         Method and code on demand
         Allows for multiple formats while also providing a strict naming structure for common actions
         Poor adoption/not heavily tested
         Can become bloated
         Work in progress
         Listed as brainstorming documents
SIREN
         Provides a more verbose spec
         Query templating and form fields
         Incorporates actions
         Multi-format
         Poor adoption
         Lacks documentation
         Work in progress
JSON API
         Simple versatile format
         Easy to read/implement
         Flat link grouping
         URL templating
         Wide adoption
         Strong community
         Recognized as hypermedia standards
         JSON-Only
         Lack of Identifier for documentation
         Still, work in progress

Saturday, July 20, 2019

API Development Glossary


API - Application Programming Interface
CRUD - Create Update and Delete
CPHL - Cross Plateform Hypertext Language
CORS - Cross-origin Resource Sharing
DDD - Domain-Driven Design
ESB - Enterprise Service Bus
JSON - Javascript Object Notation
HTTP - Hypertext transfer protocol
HTML - Hypertext markup language
HATEOAS - Hypermedia as the Engine of Application of State
REST - Representational State transfer
RPC - Remote Procedure Call
RAML - RESTFul API Modeling Language
SOAP - Simple Object Access Protocol
SOA - Service Oriented Architecture
SDD - Spec Driven Design ( API development perspective)
SLA - Service Level Agreement
URL - Uniform Resource Location
URI - Unified Resource Identifier
WSDL - Webservice Definition Language
XML - Extensible Markup Language
YAML - Yet Another Markup Language