CPHL – the Cross Platform Hypertext Language
CPHL is an idea that I’m currently playing with as I’m exploring how to make API clients more dynamic, and less reliant on hard coded actions (currently the way most clients/ SDKs are written).
The thought behind CPHL is to create an action based linking system (rather than resource based) that is capable of representing different data models, returning additional API information via docs/ API specs, and encompassing code-on-demand.
Universality, flexibility, and data reduction are three key principles in CPHL. CPHL is designed to be cross-platform (thus the name) and utilizes the same structure regardless of if you are using XML, JSON, YAML, or another format. It is designed to be flexible, containing numerous optional properties that may be passed, but also incorporates headers to determine what data should or should not be included, keeping the packet sizes as small as possible and letting you take advantage of documentation links while developing, but turning it off for production.
Speaking of which, CPHL is not ready for production, but I would encourage you to join in the conversation on GitHub. Please keep in mind that this is purely in the brainstorming phase.