Not quite around the corner, perhaps, but one thing is for sure: web API technology definitely needs to evolve, and we’ve got an idea on how it might be done. We have been working on a web API framework quite different from the rest. For those of you who want to jump right in, we’re happy to announce that it is open source and the code is available on GitHub.

Most API frameworks are in the business of building interfaces, and many offer a great set of tools to do so. However, we believe that the interface is a means, not an end. To get caught up in URL formats and HTTP headers is to miss the bigger picture: it is the purpose of web APIs to enable computer systems to connect, collaborate and share data. While an API framework may help you build an interface that is internally consistent, it will never be truly consistent with other APIs. This inconsistency means that every API demands a special treatment by the programmer who wishes to consume it, which is a tremendous waste of time.

Using an API should be just as easy as using a native library, and while we may never reach that ideal, we can certainly approximate it. We believe that the first step in doing so is to forget HTTP. Or rather, keep that clean, consistent HTTP structure in the background, but elevate the conversation to a higher level by allowing the same framework to serve an API as well as consume it.

Let us assure you, we are not reinventing SOAP or WSDL. Let us further convince you with a promise: you will always have the choice of connecting to a Cosmic API via plain HTTP, and you will find this easier than connecting to a non-Cosmic web API. By forbidding low-level customization, we enforce a level of consistency that will be helpful for generating documentation, automatically generating API clients and even consuming an API via plain HTTP.

The canonical implementation is written in Python and so far it consists of a small but powerful model system as well as actions. REST support is the next big feature. After that, we will concentrate on porting Cosmic to JavaScript and Java.

The best way to get started with Cosmic is through the Python tutorial.

We are just getting started and we welcome all feedback as well as bug reports and pull requests 😉

Python JavaScript Java Schemas & Models ✓ Actions ✓ Resources (REST)