中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C# AJAX技術如何結合GraphQL進行數據查詢

發布時間:2024-09-09 17:31:52 來源:億速云 閱讀:91 作者:小樊 欄目:編程語言

在C#中,你可以使用AJAX技術結合GraphQL進行數據查詢。這里是一個簡單的示例,展示了如何在ASP.NET Core應用程序中實現這種結合。

  1. 首先,確保你已經安裝了以下NuGet包:

    • Microsoft.AspNetCore.Mvc.NewtonsoftJson
    • GraphQL
    • GraphQL.Server.Ui.Playground
  2. 創建一個GraphQL schema(模式)和對象類型。例如,我們創建一個簡單的Person類型:

public class PersonType : ObjectGraphType<Person>
{
    public PersonType()
    {
        Field(x => x.Id);
        Field(x => x.Name);
        Field(x => x.Age);
    }
}

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}
  1. 創建一個GraphQL查詢類型,繼承自ObjectGraphType,并添加一個字段來獲取所有人員信息:
public class PersonQuery : ObjectGraphType
{
    public PersonQuery()
    {
        Field<ListGraphType<PersonType>>("people", resolve: context =>
        {
            // 在這里返回你的數據源,例如從數據庫獲取數據
            var people = new List<Person>
            {
                new Person { Id = 1, Name = "Alice", Age = 30 },
                new Person { Id = 2, Name = "Bob", Age = 25 },
            };
            return people;
        });
    }
}
  1. Startup.cs中配置GraphQL端點:
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers().AddNewtonsoftJson();
    services.AddSingleton<ISchema, PersonSchema>();
    services.AddGraphQL(options =>
    {
        options.EnableMetrics = true;
        options.ExposeExceptions = true;
    });
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller}/{action=Index}/{id?}");
        endpoints.MapGraphQL();
    });

    app.UseGraphQLPlayground(new GraphQLPlaygroundOptions());
}
  1. 創建一個HTML頁面,其中包含一個AJAX請求,用于查詢GraphQL數據:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>GraphQL AJAX Example</title>
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <h1>GraphQL AJAX Example</h1>
   <button id="loadData">Load Data</button>
    <ul id="peopleList"></ul>

   <script>
        $("#loadData").click(function () {
            $.ajax({
                url: "/graphql",
                method: "POST",
                contentType: "application/json",
                data: JSON.stringify({
                    query: `
                        {
                            people {
                                id
                                name
                                age
                            }
                        }
                    `
                }),
                success: function (response) {
                    var people = response.data.people;
                    var list = $("#peopleList");
                    list.empty();
                    for (var i = 0; i< people.length; i++) {
                        list.append("<li>" + people[i].name + " (" + people[i].age + ")</li>");
                    }
                },
                error: function (error) {
                    console.log("Error: ", error);
                }
            });
        });
    </script>
</body>
</html>

現在,當你點擊"Load Data"按鈕時,AJAX請求將發送GraphQL查詢,并在頁面上顯示查詢到的人員信息。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新丰县| 咸丰县| 东城区| 松原市| 浦江县| 通州市| 柯坪县| 德钦县| 望江县| 化隆| 新源县| 郑州市| 大连市| 南郑县| 阳信县| 筠连县| 疏附县| 开原市| 和龙市| 潮安县| 东莞市| 九江县| 新宁县| 彭州市| 水富县| 新丰县| 闽侯县| 扎兰屯市| 嘉定区| 东宁县| 公主岭市| 淮北市| 时尚| 昭平县| 南漳县| 泰州市| 玛沁县| 巫溪县| 吉林省| 常德市| 旺苍县|