graphql-public-schema-filter
apollo-server
graphql-public-schema-filter | apollo-server | |
---|---|---|
8 | 66 | |
52 | 13,670 | |
- | 0.2% | |
4.2 | 9.1 | |
5 days ago | 4 days ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
graphql-public-schema-filter
- Public and Private GQL APIs pointing to same Unified graph?
-
Keeping parts of your GraphQL schema hidden from Introspection
We actually built the following package, @n1ru4l/graphql-public-schema-filter which solves the problem stated within the blog post in a similar way (by filtering an existing schema into a subset of the original schema).
-
Authorization by entities
I am using this technique in one of my projects where we have a public API that is a subset of the internal API. I open sourced the library for doing that: https://github.com/n1ru4l/graphql-public-schema-filter
-
Ideas for implementing admin authentication for only a few mutations?
I built something similar that is "metaframework"-agnostic https://github.com/n1ru4l/graphql-public-schema-filter. Using this method has its benefits and drawbacks. If you simply public and internal part of the schema it can work pretty well. We use it for hiding the internal API from the public customer facing integration API. It is definetly easier than makntaining two seperate GraphQL schemas. However, if you want full inteospection capabilities doing this can be confusing as the introspection query operation result is different based on the authorization header which moght be weird if you are using tools such as code generators, as you now have to do it for two different schemas.
-
When to use multiple endpoints in GraphQL
While building an GraphQL API that powers web applications we introduced a public customer-facing API. Instead of building two separate endpoints we chose to serve a different schema based on the authorization header. Furthermore, requests that do not provide an customer kntegration authorization header are only allowed to execute persisted operations. That way we somehow avoided having multiple HTTP routr endpoints. Instead of building two schemas from scratch and because the public schema is basically a filtered down version of the full graph we decided to filter down the graph using directive annotations on the schema SDL. I open sourced rhe JavaScript library for doing that (which is based upon graphql-tools). The dynamic schema selection based on the authorization header is done with Envelop
-
Any GraphQL issues the community would like to be solved?
graphql-public-schema-filter: This library allows you to filter down you big graphql schema into a smaller subgraph. I have been using this for filtering our big production schema down into a public api schema that our customers use. So they don't have access to all the internal types, that are only for our internal web applications. The great thing about this is that we can just serve the correct schema based on the authorization headers as API users and Web Application tokens differ. If you have one big monolithic GraphQL server this is a great way of doing this and we are quite happy with it.
-
Introducing Envelop - The GraphQL Plugin System
Public schema filter - for creating a simple GraphQL schema that can be used for public APIs based on existing GraphQL schema.
- I built a small library for filtering a GraphQL schema graph into a subgraph
apollo-server
-
React Server Components Example with Next.js
Another interesting point is that executing fetches on the server can allow developers to more easily leverage caching. Next.js already handles caching out-of-the-box and Iām curious to see if the wider adoption of RSC reduces the need to combine React with solutions like Apollo Server and Apollo Client. While there are other benefits to these tools, RSC could provide similar caching behavior without the need to invest in a GraphQL solution.
-
Building Scalable GraphQL Microservices With Node.js and Docker: A Comprehensive Guide
There are several GraphQL server implementations, however, for this tutorial, we'll utilize Apollo GraphQL's Apollo Server, a lightweight and flexible JavaScript server that makes it easy to build GraphQL APIs.
-
Launch HN: Serra (YC S23) ā Open-source, Python-based dbt alternative
As I mentioned, their main GraphQL server package is[1], so that's where the confusion came from. Thanks.
[1] https://github.com/apollographql/apollo-server/blob/9817bc47...
-
Who moved my error codes? Adding error types to your GoLang GraphQL Server
While working on this blog post, I learned that Apollo Server, the most popular GraphQL server for typescript, uses a similar method for adding error codes to GraphQL. It even lets you add custom errors. Hopefully, someday other GraphQL server projects will follow them. Until then, weāve got a strong indication we took the right approach.
-
Zero to Serverless Car Insurance - Part 2
GraphQL is just a schema, there are many different implementations of a GraphQL server, AppSync being one of them. I mentioned Apollo server in this series as well.
- How can i do query directives or executable directives?
-
How we migrated to Apollo Server 4
After some head-scratching, I opened an issue on Apollo Serverās GitHub repository. There, Apollo Server contributor @āglasser shared a helpful suggestion: why not invoke our AuthPlugin from Apollo Serverās context function? Throwing from context would ensure we can control the HTTP status response without having to introduce more methods and error checks to our AuthPlugin (like unexpectedErrorProcessingRequest). With that suggestion in mind, we rewrote our AuthPlugin as follows:
-
why would a developer choose nodejs over c#.net for backend?
Apollo as a middleware in Express.js, actually.
-
Using Postman and Postman Interceptor to authenticate a session cookie based GraphQL API
Apollo Server 3 Cookie Issue #5775
-
Custom API server with basic CRUD ā Apollo, GraphQL & MongoDB
Lastly, instead of writing our API core ourselves, we'll be using the star of this episodeā---āApollo Server (a.k.a. GraphQL server). It has detailed documentation available here.
What are some alternatives?
nestjs-graphql - GraphQL (TypeScript) module for Nest framework (node.js) š·
mercurius - Implement GraphQL servers and gateways with Fastify
envelop - Envelop is a lightweight library allowing developers to easily develop, share, collaborate and extend their GraphQL execution layer. Envelop is the missing GraphQL plugin system.
graphql-mesh - The Graph of Everything - Federated architecture for any API service
graphql-jit - GraphQL execution using a JIT compiler
graphql-helix - A highly evolved GraphQL HTTP Server š§¬
graphql-yoga - š§ Rewrite of a fully-featured GraphQL Server with focus on easy setup, performance & great developer experience. The core of Yoga implements WHATWG Fetch API and can run/deploy on any JS environment.
galactagraph-boilerplate - š The best&fastest way to create and manage your World-Dominating Federated GraphQL API
express-graphql - Create a GraphQL HTTP server with Express.
redwood - The App Framework for Startups
graphql-ws - Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client.