graphql-binding-github开源项目

我要开发同款
匿名用户2021年11月23日
68阅读
开发技术Java
所属分类大数据、数据查询
授权协议Readme

作品详情

GraphQLBindingforGitHub

EmbedGitHub'sGraphQLAPIintoyourserverapplication

DeprecationNotice!

Inthelastfewmonths,sincethetransitionofmanylibrariesunderTheGuild'sleadership,We'vereviewedandreleasedmanyimprovementsandversionstographql-cli,graphql-configandgraphql-import.

We'vereviewedgraphql-binding,hadmanymeetingswithcurrentusersandengagedthecommunityalsothroughtheroadmapissue.

Whatwe'vefoundisthatthenewGraphQLMeshlibraryiscoveringnotonlyallthecurrentcapabilitiesofGraphQLBinding,butalsothefutureideasthatwereintroducedintheoriginalGraphQLBindingblogpostandhaven'tcometolifeyet.

Andthebestthing-GraphQLMeshgivesyouallthosecapabilities,evenifyoursourceisnotaGraphQLserviceatall!itcanbeGraphQL,OpenAPI/Swagger,gRPC,SQLoranyothersource!AndofcourseyoucanevenmergeallthosesourcesintoasingleSDK.

JustlikeGraphQLBinding,yougetafullytypedSDK(thankstotheprotocolsSDKsandtheGraphQLCodeGenerator),butfromanysource,andthatSDKcanrunanywhere,asaconnectororasafullblowngateway.Andyoucanshareyourown"MeshModules"(whichyouwouldprobablycall"yourownbinding")andourcommunityalreadycreatedmanyofthose!Also,wedecidedtosimplyexposeregularGraphQL,soyoucanchoosehowtoconsumeitusingalltheawesomefluentclientSDKsoutthere.

Ifyouthinkthatwe'vemissedanythingfromGraphQLBindingthatisnotsupportedinabetterwayinGraphQLMesh,pleaseletusknow!

Installyarnaddgraphql-binding-githubExample(Demo)

Seeexampledirectoryforfullexampleapplication.

const{GitHub}=require('graphql-binding-github')const{GraphQLServer}=require('graphql-yoga')const{importSchema}=require('graphql-import')constfavoriteRepos=[{owner:'graphcool',name:'graphql-yoga'},{owner:'graphql',name:'graphql-js'},]consttoken='__ENTER_YOUR_GITHUB_TOKEN__'constgithub=newGitHub(token)consttypeDefs=importSchema('schemas/app.graphql')constresolvers={Query:{hello:(parent,{name})=>`Hello${name||'World'}!`,favoriteRepos:(parent,args,context,info)=>{returnPromise.all(favoriteRepos.map(args=>github.query.repository(args,context,info)),)},},//thefollowingisneededtomakeinterfaces,unions&customscalarswork...github.getAbstractResolvers(typeDefs),}constserver=newGraphQLServer({resolvers,typeDefs})server.start(()=>console.log('Serverrunningonhttps://localhost:4000'))HowtocreateaGitHubToken

SimplyfollowthisguideandheadovertothetokensettingsonGitHub.

ResourcesGithubGraphQLExplorer:https://developer.github.com/v4/explorer/
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论