GraphQL-解析器
#javascript #网络开发人员 #api #graphql

大家好,在GraphQl系列的这一部分中,我将讨论解析器。

解析器

  • 它们是定义如何检索或操纵GraphQL模式中每个字段的数据的函数。解析器是GraphQL Server实现的关键部分,负责从各种来源(例如数据库,API或其他服务)获取数据,并返回所需的数据。

  • 客户端发送GraphQl查询时,服务器将查询中的字段与相应的解析器匹配。模式中的每个字段都有一个关联的解析器函数,该函数决定了如何解析该字段的数据。

创建一个解析器 -

  • 在本系列的上一部分中,您创建了一个名为“ schema”的文件夹,该文件夹在该文件夹中创建另一个名为“解析器,JS”的文件,并在此处粘贴该代码。
const { fakeData } = require("../FakeData")
const lodesh = require("lodash")
const resolvers = {
    Query: {
        // Get All users
        users() {
            return fakeData
        },
        // Get user by ID
        user(parent, args) {
            const id = args.id
            const user = lodesh.find(fakeData, { id: Number(id) })
            return user
        },
        // Get user by Name
        userByName(parent, args) {
            const name = args.name
            const user = lodesh.find(fakeData, { name  })
            return user
        },
    },
}

module.exports = { resolvers }
  • 在这里,我们为在Typedefs中创建的3个处理程序创建了3个处理程序功能。
  • args将具有在Typedefs架构文件中定义的所有属性。

  • 还创建一个名为fakedata.js的文件并将此数据添加到其中。

//fakeData.js
const fakeData = [
    {
        id: 101,
        name: "User 1",
        age: 24,
        isEmployee: true,
        role: "WebDeveloper",
        friends: [
            {
                id: 102,
                name: "User 2",
                age: 21,
                isEmployee: true,
                role: "Tester"
            },
            {
                id: 103,
                name: "User 3",
                age: 20,
                isEmployee: false,
                role: "SoftwareEngineer"
            },
            {
                id: 104,
                name: "User 4",
                age: 27,
                isEmployee: true,
                role: "WebDeveloper"
            }
        ]
    },
    {
        id: 102,
        name: "User 2",
        age: 21,
        isEmployee: true,
        role: "Tester",
        friends: [
            {
                id: 103,
                name: "User 3",
                age: 20,
                isEmployee: false,
                role: "SoftwareEngineer"
            },
            {
                id: 104,
                name: "User 4",
                age: 27,
                isEmployee: true,
                role: "WebDeveloper"
            }
        ]
    },
    {
        id: 103,
        name: "User 3",
        age: 20,
        isEmployee: false,
        role: "SoftwareEngineer",
        friends: [
            {
                id: 104,
                name: "User 4",
                age: 27,
                isEmployee: true,
                role: "WebDeveloper"
            }
        ]
    },
    {
        id: 104,
        name: "User 4",
        age: 27,
        isEmployee: true,
        role: "WebDeveloper",
        friends: [
            {
                id: 103,
                name: "User 3",
                age: 20,
                isEmployee: false,
                role: "SoftwareEngineer"
            }
        ]
    }
];


module.exports = { fakeData }
  • 假数据集操纵GraphQl处理程序功能。

现在运行此命令 -

npm run start
  • 它将在Localhost:4000使用GraphQl UI启动服务器,您可以在其中检查API响应

这就是您可以为GraphQL API创建解析器的方法。在本系列的下一部分中,我将讨论突变,这将有助于创建,更新或从数据集中删除数据。

感谢您检查此帖子
您可以与我联系 -
Instagram -https://www.instagram.com/supremacism__shubh/
LinkedIn -https://www.linkedin.com/in/shubham-tiwari-b7544b193/
电子邮件-shubhmtiwri00@gmail.com

^^您可以在下面的链接上为我提供一些捐款,谢谢^^^
☕ --> https://www.buymeacoffee.com/waaduheck <--

也检查这些帖子
https://dev.to/shubhamtiwari909/website-components-you-should-know-25nm

https://dev.to/shubhamtiwari909/smooth-scrolling-with-js-n56

https://dev.to/shubhamtiwari909/swiperjs-3802

https://dev.to/shubhamtiwari909/custom-tabs-with-sass-and-javascript-4dej