GraphQL实现有效地公开堆栈溢出资源(评论,帖子,答案,投票等)
stack Exchange没有GraphQl端点,所以我做了一个。由于构建模式,上面的实时API目前处于POC模式。目前,它正在从https://health.stackexchange.com/中提供内容,并且每周更新,随着管道和INFRA的加强和建造,它将随附更多。预计延迟量最小,因为目前这是在应用程序服务中托管的,该服务将在低使用期间旋转。如果发生这种情况,请耐心等待,操场/请求在第一个“唤醒”之后就会燃烧。如果这有一定的吸引力,将会增加可用性。
在本地运行:
docker-compose up
并访问http:// localhost:8080开始使用操场或通过一些查询登陆端点!例如,在子社区中获取有关评分最高的问答页面的信息:
query postsPagination {
allPostsCursor(first: 10, where: { order: { field: votes, order: DESC } }) {
pageInfo {
hasNextPage
hasPreviousPage
}
edges {
cursor
node {
score
title
body
comments {
userId
text
}
answers {
score
body
comments {
userDisplayName
text
}
}
}
}
}
}
该服务器还可以作为Docker容器提供,提供了单独的后端:
docker run -e SERVER='<dbhost>' -e UNAME='<dbUname>' -e PASS='<dbPass>' snimmagadda/stack-exchange-graphql-server:latest
或从来源运行:
go run cmd/server.go某些环境变量必须设置为本地运行
| 钥匙 | 类型 | 描述 | 例子 |
|---|---|---|---|
SERVER | 细绳 | DB主机 | Localhost |
SCHEMA | 细绳 | 应用DB模式 | 斯塔克 |
UNAME | 细绳 | 应用DB用户名信誉 | Appuser |
PASS | 细绳 | 应用DB密码信贷 | SuperSecret123 |
SERVER应为MySQL DB的主机名。为了提供内容,GraphQL Server期望填充的stacke架构。
todo:可配置的参数...
go build cmd/server.go开发选项很容易灵活,并且更简化的路线即将到来...现在可以使用以下内容:
仅使用Docker(或调整并使用docker-compose.yml )运行后端
docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=password -e MYSQL_ROOT_USER=root -e MYSQL_PASSWORD=password -d -p 3306:3306 mysql:5.7.26
〜1K行中存在将用作您的模式的插入。
创建(或复制)一个.ENV文件,上面的表中的变量设置中以配置本地GraphQl Server。
启动服务器:
go run cmd/server.go
TODO我可能会进行一些改进并换成诸如弹性后端之类的东西,但现在是早期的设置。由Stack Exchange发布的XML转储使用与Spring Batch编写的作业在时间表上导入到索引关系后端中。 GraphQL Server从此后端读取以揭示堆栈交换数据。 
? Sai Nimmagadda
该项目目前正在构建模式中。欢迎贡献,问题和功能请求!
请随时检查问题页面。
如果这个项目对您有所帮助,请给!
版权所有©2020 Sai Nimmagadda。
该项目已获得MIT许可。
此读数是由readme-md generator生成的❤️