GraphQL 简介

当你在 Steedos 中配置了对象以后,Steedos 为你自动生成 GraphQL API。

例如你定义了对象 Post

name: Post
fields:
name:
type: String
description:
type: String
isPublished:
type: Boolean
owner:
label: Author
type: master_detail
reference_to: User

Steedos 自动生成以下 GraphQL Schema

type User {
id: ID,
name: String
username: String
}
type Post {
id: ID
name: String
description: String
isPublished: String
author: User
}
type Query {
Posts(where): [Post]
Post(id: String): Post
}
type Mutation {
createPost(data):Post
updatePost(data):Post
deletePost(id: String):Post
}

运行一个graphql服务器

  • 使用@steedos/objectql包提供的方法getSteedosSchema获取到schema对象
  • 使用schema对象的addDataSource方法添加数据源
  • 添加好数据源之后调用@steedos/objectql包提供的getGraphQLRoutes方法获取express.Router()对象, 示例如下:
import { getSteedosSchema, getGraphQLRoutes } from '@steedos/objectql';
import express = require('express');
let schema = getSteedosSchema();
// 添加默认数据源 default即为此数据源的name
schema.addDataSource('default', {
driver: "mongo",
url: 'mongodb://127.0.0.1:27017/steedos',
objects: {
post: {
fields: {
title: {
type: "text",
inlineHelpText: "fsdafas"
}
}
}
}
})
// 获取根据传入的datasource生成的express的router对象
let route = getGraphQLRoutes(schema.getDataSource('default'));
// 将获取的route绑定到自定义的express对象中
let app = express();
app.use('/customUrl', route);
app.listen(3000)
  • 通过http://localhost:3000/customUrl/default即可访问到graphql客户端控制台
对于华炎魔方有疑问??
微信扫描二维码,我们的技术专家会为您解答。

我们的技术专家拥有十年以上的管理软件开发经验,无论您询问有关华炎魔方的功能、定价、实施或任何其他方面的问题,他们都将随时准备为您提供帮助。

华炎魔方

华炎魔方是新一代低代码平台,基于商业智能和模型驱动,可以按照业务部门的需求,轻松便捷地创建智能化、移动化、个性化的应用程序。

© 2020 华炎软件. 保留所有权利.