BLEST

Beyond REST

BLEST: A revolutionary approach to networked application architecture

Mission: The Future of APIs

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.

Benefits: What Makes It BLEST

  • Built on JSON

    BLEST harnesses the power of JSON (JavaScript Object Notation), providing a standardized and uniform data representation that seamlessly integrates with existing parsing libraries.

  • Request Batching

    With BLEST, multiple operations can be performed in a single request. By batching requests, we save bandwidth, reduce latency, and eliminate unnecessary performance overhead on servers.

  • Compact Payloads

    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.

  • Selective Returns

    Say goodbye to over-fetching of data. BLEST allows you to specify precisely which data the server should return, eliminating unnecessary information and optimizing data transfer.

  • Single Endpoint

    BLEST eliminates URI/method-based routing. This reduces complexity and enhances security by preventing sensitive data and traffic patterns from leaking through request URIs.

  • Fully Encrypted

    Security is of utmost importance. BLEST mandates the use of end-to-end encryption, such as TLS (HTTPS), ensuring that your data remains secure throughout its journey.

Payload: How BLEST Works

Request

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, an optional/nullable parameters JSON object, and an optional/nullable selector JSON array. The selector array filters the result returned from the API.

[ [ "eba2ab06-f771-4017-9065-eb7e0e5d934f", "product/getProductById", { "productId": "f91588cf-c401-4886-a15c-5a0cb2f38db0" }, [ "productId", "productName", "price", [ "category", [ "categoryId", "categoryName" ] ] ] ] ]

Response

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 unique ID and route along with the result or an error.

Response with Result

[ [ "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 ] ]

Response with Error

[ [ "eba2ab06-f771-4017-9065-eb7e0e5d934f", "product/getProductById", null, { "message": "Product not found." } ] ]

Launch Pad: How To Get Started

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.

Front-end

Back-end

Flight Log: Exploring Possibilities

July 20, 2023

Proposal: BLEST Introspection via Utility Routes

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.

July 7, 2023

Comparing, Contrasting, and Combining BLEST and GraphQL

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 selective returns and a single endpoint like GraphQL, but it is simpler, less opinionated, and flexible enough to support a wide variety of use cases (including serving GraphQL).

June 2, 2023

BLEST White Paper

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.

Ground Control: We're Here To Help

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.

By submitting this form you agree to the electronic transfer and storage of the information provided therein.