# 有人想过将 Hasura 连接到 Discourse 的 Postgres 数据库，以实现更定制化（或更精简）的前端吗？

**URL:** <https://meta.discourse.org/t/anyone-thought-of-connecting-hasura-to-discourses-postgres-database-for-a-potentially-more-customised-or-narrowed-down-fe/149576>\
**Category:** Development\
**Created:** [2020 年4 月 28 日 09:58 UTC](https://meta.discourse.org/t/anyone-thought-of-connecting-hasura-to-discourses-postgres-database-for-a-potentially-more-customised-or-narrowed-down-fe/149576 "2020-04-28T09:58:17Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

作者： ![ManUtopiK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manutopik/32/169931_2.png) [@ManUtopiK](https://meta.discourse.org/u/ManUtopiK)\
发布日期： [2020 年5 月 21 日 01:58 UTC](https://meta.discourse.org/t/anyone-thought-of-connecting-hasura-to-discourses-postgres-database-for-a-potentially-more-customised-or-narrowed-down-fe/149576/7 "2020-05-21T01:58:21Z")

</div>

好的，迫不及待了！我尝试使用了 graphql-mesh。

所以，[https://docs.discourse.org/](https://docs.discourse.org/) 下载按钮下的 openapi 文件似乎已损坏 😕

我在此处测试了有效性：[https://apitools.dev/swagger-parser/online/#](https://apitools.dev/swagger-parser/online/#)，输出结果如下：

```plaintext
Swagger 架构验证失败。
  数据在 #/paths//page_view_total_reqs/get/parameters/3 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/3 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/3
  数据在 #/paths//page_view_total_reqs/get/parameters/2 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/2 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/2
  数据在 #/paths//page_view_total_reqs/get/parameters/1 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/1 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/1
  数据在 #/paths//page_view_total_reqs/get/parameters/0 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/0 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/0
 
JSON_OBJECT_VALIDATION_FAILED

错误：Swagger 架构验证失败。
  数据在 #/paths//page_view_total_reqs/get/parameters/3 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/3 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/3
  数据在 #/paths//page_view_total_reqs/get/parameters/2 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/2 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/2
  数据在 #/paths//page_view_total_reqs/get/parameters/1 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/1 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/1
  数据在 #/paths//page_view_total_reqs/get/parameters/0 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/0 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/0
 
JSON_OBJECT_VALIDATION_FAILED
    at o (https://apitools.dev/swagger-parser/online/js/bundle.min.js:1:73766)
    at https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:227596

SyntaxError: Swagger 架构验证失败。
  数据在 #/paths//page_view_total_reqs/get/parameters/3 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/3 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/3
  数据在 #/paths//page_view_total_reqs/get/parameters/2 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/2 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/2
  数据在 #/paths//page_view_total_reqs/get/parameters/1 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/1 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/1
  数据在 #/paths//page_view_total_reqs/get/parameters/0 处不匹配任何 'oneOf' 架构
    数据在 #/paths//page_view_total_reqs/get/parameters/0 处不匹配任何 'oneOf' 架构
      缺少必需属性：schema at #/
      缺少必需属性：content at #/
    缺少必需属性：$ref at #/paths//page_view_total_reqs/get/parameters/0
 
JSON_OBJECT_VALIDATION_FAILED
    at Function.o [as syntax] (https://apitools.dev/swagger-parser/online/js/bundle.min.js:1:73766)
    at validateSchema (https://apitools.dev/swagger-parser/online/js/bundle.min.js:1:5021)
    at SwaggerParser.validate (https://apitools.dev/swagger-parser/online/js/bundle.min.js:1:3171)

z-schema 验证错误：JSON_OBJECT_VALIDATION_FAILED
    at ZSchema.getLastError (https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:211187)
    at validateSchema (https://apitools.dev/swagger-parser/online/js/bundle.min.js:1:4925)
    at SwaggerParser.validate (https://apitools.dev/swagger-parser/online/js/bundle.min.js:1:3171)

```

因此，我搜索了 Discourse API 的其他 openapi 或 swagger 文件。我只找到了 [这一个](https://raw.githubusercontent.com/erkist/discourse_swagger/master/discourse_swagger.yml)。  
它在第 426 行有点问题，但我已经修复了。

配置好 graphql-mesh 后，我得到了一个可运行的 GraphQL API！但是……  
这个 swagger 文件不完整或者太旧了。只有 4 个查询，没有变异操作，user 类型的属性也很少……😕

Discourse 的 swagger 或 openapi 文件在哪里可以找到呢？

---

_[View the full topic](https://meta.discourse.org/t/anyone-thought-of-connecting-hasura-to-discourses-postgres-database-for-a-potentially-more-customised-or-narrowed-down-fe/149576)._
