Announcing Version 1.0
BLEST came out last summer and after a year of usage in development and production environments it's time to announce an official version 1.0. Here's what you need to know.
BLEST: A revolutionary new approach to networked application architecture
While REST has played a tremendous role in the development web services, it has several limitations which make it increasingly less suitable for modern web applications. BLEST (Batch-able Lightweight Encrypted State Transfer) addresses these limitations head-on, opening up a new realm of possibilities for the next generation of connected applications.
BLEST harnesses the power of JSON (JavaScript Object Notation), providing a standardized and uniform data representation that seamlessly integrates with existing parsing libraries.
With BLEST, multiple operations can be performed in a single request. By batching requests we save bandwidth, reduce latency, and eliminate unnecessary overhead on servers.
BLEST introduces a clear and succinct payload structure that is not only efficient to send but also easy to read and write. Its streamlined approach ensures optimum performance.
BLEST eliminates URI/method-based routing in favor of a single endpoint and named routes. This reduces complexity, improves developer experience, and facilitates API introspection.
As data security is increasing important, BLEST mandates the use of end-to-end encryption, such as TLS (HTTPS), ensuring that your data remains secure throughout its journey.
The BLEST request is a JSON array comprised of one or more request items (also JSON arrays). Each request item contains a unique ID, the route name, a body (optional), and headers (optional).
[
[
"eba2ab06-f771-4017-9065-eb7e0e5d934f",
"product/getProductById",
{
"productId": "f91588cf-c401-4886-a15c-5a0cb2f38db0"
},
{
"auth": "myToken"
}
]
]
The BLEST response is a JSON array comprised of the same number of items as the request (also JSON arrays). Each response item contains its ID and route along with the result or an error.
[
[
"eba2ab06-f771-4017-9065-eb7e0e5d934f",
"product/getProductById",
{
"productId": "f91588cf-c401-4886-a15c-5a0cb2f38db0",
"productName": "Interstellar Navigator",
"price": 3.14,
"category": {
"categoryId": "8ffa6ba6-c5ad-41b4-94a6-95d19d01c520",
"categoryName": "Space Exploration"
}
},
null
]
]
[
[
"eba2ab06-f771-4017-9065-eb7e0e5d934f",
"product/getProductById",
null,
{
"message": "Product not found."
}
]
]
Client and server reference implementations are available in multiple languages and frameworks to help you get up and running. For language or framework requests or to suggest an improvement to an existing implementation please contact us.
BLEST came out last summer and after a year of usage in development and production environments it's time to announce an official version 1.0. Here's what you need to know.
Introspection allows developers to query an API to learn about its available endpoints, data structures, and supported operations regardless of whether they have access to its source code. Introspection is particularly helpful for exploring third-party APIs and enabling IntelliSense in IDEs. Here we outline a proposal for API introspection within the BLEST protocol.
GraphQL is an innovative solution for querying graph-like systems, but it is not an all-purpose solution nor is it a replacement for REST (and it was not designed to be). BLEST offers a single endpoint API surface like GraphQL, but it is simpler, less opinionated, and flexible enough to support a wide variety of use cases (including serving GraphQL).
BLEST offers a straightforward, standardized protocol for inter-application communication that builds from the foundation laid by REST. It solves many of the problems plaguing applications today such as over- and under-fetching, lack of uniformity, and performance overhead. It also reduces API complexity, increases flexibility, and improves security.
If you have comments, questions, or suggestions, or are interested in working together to bring BLEST to your organization, please use this form to get in touch.