c# Graphql Server/Client Test(2) - Server

2024. 6. 17. 21:43카테고리 없음

1. 서버 프로젝트 생성

 

 

 

3. 빌드 종속성 설정을 한다

4. Program.cs를 다음과 같이 바꾼다

[변경 전] [변경 후]
using Data.Models;
using HotChocolate.Types.Pagination;
using Microsoft.EntityFrameworkCore;

string ConnectionString = "Server=localhost:15432;Database=postgres;User ID=postgres;Password=";
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddDbContext<postgresContext>(options =>
    options.UseNpgsql(builder.Configuration.GetConnectionString(ConnectionString)));

builder.Services
    .AddGraphQLServer()
    .RegisterDbContext<postgresContext>(DbContextKind.Synchronized)
    .AddFiltering()
    .AddProjections()
    .AddQueryType<Query>()
    .SetPagingOptions(new PagingOptions
    {
        MaxPageSize = int.MaxValue - 1,
        DefaultPageSize = int.MaxValue - 1,
        IncludeTotalCount = true,
    });

var app = builder.Build();

app.UseRouting();
app.UseEndpoints(endpoints =>
{
   endpoints.MapGraphQL();
});

app.MapGet("/", () => "Hello World!");
app.Run();

 

5. 아래와 같이 Schema 폴더생성 후 Query.cs 파일을 생성한다

6. Query.cs는 다음과 같이 작업한다

namespace Data.Models
{
    public partial class Query
    {
        [UsePaging]
        [UseProjection]
        [UseFiltering]
        public IQueryable<SeoulPopulation> GetSeoulPopulation(postgresContext dbContext)
        {
            return dbContext.SeoulPopulation;
        }
    }
}

 

7. 프로그램을 실행하면 다음과 같이 나타난다(포트번호는 바뀔수 있음)

 

8. https://localhost:7145/graphql/ 로 url을 바꾸면 아래와 같이 나타난다

 

9.CreateDocument버튼을 선택한 다음, 다음과 같이 나타낼수 있다