{"repo":"thebigredgeek/apollo-resolvers","free":true,"listed":false,"github":"https://github.com/thebigredgeek/apollo-resolvers","clone":"git clone https://github.com/thebigredgeek/apollo-resolvers.git","description":"Expressive and composable resolvers for Apollostack's GraphQL server","language":"JavaScript","stars":429,"topics":["nodejs","javascript","graphql","apollo-client","apollo-server","resolver","child-resolver","parent-resolver","apollostack-graphql-server","composible-resolvers"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"apollo-resolvers Expressive and composable resolvers for Apollostack's GraphQL server Overview When standing up a GraphQL backend, one of the first design decisions you will undoubtedly need to make is how you will handle authentication, authorization, and errors. GraphQL resolvers present an entirely new paradigm that existing patterns for RESTful APIs fail to adequately address. Many developers end up writing duplicitous authorization checks in a vast majority of their resolver functions, as well as error handling logic to shield the client from encountering exposed internal errors. The goal of apollo-resolvers is to simplify the developer experience in working with GraphQL by abstracting away many of these decisions into a nice, expressive design pattern. apollo-resolvers provides a pattern for creating resolvers that work, essentially, like reactive middleware. By creating a chain of resolvers to satisfy individual parts of the overall problem, you are able to compose elegant streams that take a GraphQL request and bind it to a model method or some other form of business logic with authorization checks and error handling baked right in. With apollo-resolvers , data flows between composed resolvers in a natural order. Requests flow down from parent resolvers to child resolvers until they reach a point that a value is returned or the last child resolver is reached. Thrown errors bubble up from child resolvers to parent resolvers until an additional transformed error is eith","default_branch":null,"files":null,"tree":[],"storefront":"/r/thebigredgeek","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/thebigredgeek/apollo-resolvers/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}