使用沙发api与最简单的快递服务器



Hi.
我有这个最简单的表达图形服务器。
我想用sofa-api使它"rest-able"

两个问题:

  1. 当你进入/api/hello时,它应该显示"Hello World!",现在它是空的。/graphql路由工作正常,返回"Hello World!">
  2. 其余的swagger接口没有加载在/api
    你可以在这里玩它:https://stackblitz.com/edit/node-p6jnji?file=index.js,package.json

var schema = buildSchema(`
type Query{
hello:String
}`);
const openApi = OpenAPI({
schema,
info: {
title: 'Example API',
version: '3.0.0',
},
});
var root = {
hello: () => {
return 'Hello World!';
},
};
var app = express();
app.use(
'/graphql',
graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
})
);
app.use(
'/api',
useSofa({
schema,
basePath: '/api',
onRoute(info) {
openApi.addRoute(info, {
basePath: '/api',
});
},
})
);
writeFileSync('./swagger.json', JSON.stringify(openApi.get(), null, 2));
app.listen(4400);

感谢

Sofa中没有定义根值。在graphqlHttp调用中,您提供rootValue作为执行参数,但Sofa不知道

我认为最优雅的方式是使用解析器(root value)构建模式

像这样:

import { makeExecutableSchema } from '@graphql-tools/schema'
export const schema = makeExecutableSchema({ typeDefs, resolvers })

你可以在这里找到更多信息

最新更新