Skip to content

Add Kurier as a Node.js implementation of JSON:API #1569

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 1, 2021

Conversation

joelalejandro
Copy link
Contributor

@joelalejandro joelalejandro commented Jun 24, 2021

Hey there JSON:API folks, just adding another framework to the list for Node.js 🚀

From the Kurier readme, this is a list of features we support:

  • Operation-driven API: JSONAPI is transport-layer independent, so it can be used for HTTP, WebSockets or any transport protocol of your choice.
  • Declarative style for resource definition: Every queryable object in JSONAPI is a resource, a representation of data that may come from any source, be it a database, an external API, etc. Kurier defines these resources in a declarative style.
  • CRUD database operations: Baked into Kurier, there is an operation processor which takes care of basic CRUD actions by using Knex. This allows the framework to support any database engine compatible with Knex. Also includes support for filtering fields by using common SQL operators, sorting and pagination.
  • Transport layer integrations: The framework supports JSONAPI operations via WebSockets, and it includes middlewares for Koa, Express and Vercel to automatically add HTTP endpoints for each declared resource and processor.
  • Relationships and sideloading: Resources can be related with belongsTo / hasMany helpers on their declarations. Kurier provides proper, compliant serialization to connect resources and even serve them all together on a single response.
  • Error handling: The framework includes some basic error responses to handle cases equivalent to HTTP status codes 401 (Unauthorized), 403 (Forbidden), 404 (Not Found) and 500 (Internal Server Error).
  • User/Role presence authorization: By building on top of the decorators syntax, Kurier allows you to inject user detection on specific operations or whole processors. The framework uses JSON Web Tokens as a way of verifying if a user is valid for a given operation.
  • Extensibility: Both resources and processors are open classes that you can extend to suit your use case. For example, do you need to serialize an existing, external API into JSONAPI format? Create a MyExternalApiProcessor extending from OperationProcessor and implement the necessary calls et voilà!.

Resolves kurierjs/kurier#293.

@dgeb
Copy link
Member

dgeb commented Aug 29, 2021

@joelalejandro thanks for the contribution, and apologies for the delay. Kurier looks quite capable!

Would you mind moving this entry to the bottom of the node section? The current listing is loosely chronological, although we're considering some alternative listing / search / ordering options.

@joelalejandro
Copy link
Contributor Author

Thanks @dgeb! I've moved Kurier to the bottom of the list :D

@dgeb dgeb merged commit 5c743a4 into json-api:gh-pages Sep 1, 2021
@dgeb
Copy link
Member

dgeb commented Sep 1, 2021

Thanks much @joelalejandro!

@joelalejandro joelalejandro deleted the patch-1 branch September 7, 2021 18:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Register Kurier as a Node.js implementation in the JSON:API official website
2 participants
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy