将 REST API 获取请求转换为 GraphQL

Posted

技术标签:

【中文标题】将 REST API 获取请求转换为 GraphQL【英文标题】:Converting a REST API get request to GraphQL 【发布时间】:2021-07-07 10:20:00 【问题描述】:

我有一个 REST API,如下所示,它接收代码参数,搜索数据库,如果参数存在则返回结果,并将用户重定向到从数据库获取的 long_url。如何将其转换为 graphQL?

indexRoute.get("/:code", async (req, res) => 
  try 
    const urlCode = req.params.code

    const url = await Model.findUrlCode(urlCode)

    if (url) 
      return res.redirect(url.long_url)
     else 
      return res.status(404).json("No url found.")
    
   catch (err) 
    console.log(err)
    return res.status(500).json("Server error")
  
)

export default indexRoute

【问题讨论】:

我最近从使用 REST 转移到了 GQL。真的很喜欢,现在会选择 GQL 而不是 REST,但学习曲线陡峭,这是一种完全不同的理念,因此将 REST 端点“转换”为 GQL 并没有真正意义。我从这个想法开始,这完全是浪费我的时间 查看 GQL 操场 - 真的帮助我了解了它是如何工作的:apollographql.com/docs/apollo-server/testing/graphql-playground 帮助您了解 GQL 的结构和语法,并以不同于您可能习惯于 REST 的方式思考 graphql 返回 JSON 响应,没有重定向或任何其他基于浏览器的行为......您可以在响应中返回 url,但客户端决定如何处理该信息 【参考方案1】:

一个很好的例子资源,

https://blog.bitsrc.io/migrating-existing-rest-apis-to-graphql-2c5de3db

【讨论】:

以上是关于将 REST API 获取请求转换为 GraphQL的主要内容,如果未能解决你的问题,请参考以下文章

如何将JSON响应转换为Java List-使用Rest Assured进行API测试

Python 中的 Rest API - 获取身份验证令牌,然后将其设置为用于 POST 的变量

如何在Spring Boot Rest API中的BeanUtils.copyProperties中将String转换为枚举

REST api:在一次获取中请求多个资源[重复]

分分钟将 REST 转换为 GraphQL

将 jsonschema 转换为 Django REST 序列化器的工具?