728x90 반응형 분류 전체보기295 .NET 6] Hot Chocolate GraphQL : mutation(5) Book.cs public class Author { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int AuthorId { get; set; } [Required] public string Name { get; set; } public ICollection Books { get; set; } } public class Book { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int BookId { get; set; } [Required] public int AuthorId { get; set; } [Required] public string Title {.. 2022. 2. 9. GraphQL vs REST 1. Over-fetching REST API를 호출 시, 내가 필요한 property를 지정할 수 없기 때문에, 필요한 것보다 더 많은 데이터를 return받는다. GraphQL은 필요한 object의 필요한 field를 query로 지정할 수 있다. Over-fetching을 피할 수 있다. 2. Under-fetching REST는 child object의 데이터를 얻기 위해, 추가로 api를 request 해야 한다. GraphQL은 child object의 field를 추가로 지정할 수 있기 때문에 한번의 호출로 원하는 child object의 데이터까지 가져올 수 있다. 3. Operation Operation GraphQL REST Read Query GET Write Mutation PUT.. 2022. 2. 9. .NET 6] Hot Chocolate GraphQL : multiple requests (4) GraphQL은 single query에 multiple operation을 지원한다. concurrency exception이 발생한다. DbContext는 thread safe하지 않다. 스레드 간에 context를 공유하지 않는다. 단일 HTTP Request 내의 여러 작업을 해야 하는 경우, AddDbContextFactory를 사용한다. context type을 직접 등록하는 대신, factory를 등록하면 새 인스턴스를 쉽게 만들 수 있다. Program.cs //builder.Services.AddDbContext(option => option.UseSqlServer( // builder.Configuration.GetConnectionString("DefaultConnection") //.. 2022. 2. 8. .NET 6] Hot Chocolate GraphQL : EF Core (3) DbContext를 사용하도록 Query class를 수정하자. public class Query { //public Book GetBook() => // new Book // { // Title = "C# in depth.", // Author = new Author // { // Name = "Jon Skeet" // } // }; public IQueryable GetBooks([Service] ApplicationDbContext context) => context.Books; } ApplicationDbContext.cs public class ApplicationDbContext : DbContext { public ApplicationDbContext(DbContextOptions optio.. 2022. 2. 8. ASP.NET Core] Entity Framework Core - 2. One To Many Nuget Package 설치 : Microsoft.AspNetCore.Identity.EntityFrameworkCore Microsoft.AspNetCore.Identity.EntityFrameworkCore.Tools : DB Migration에 필요함 아래 관계(One To Many)의 테이블과 매핑할 Entity Framework model class를 생성해보자. Book.cs public class Author { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int AuthorId { get; set; } [Required] public string Name { get; set; } public ICollection .. 2022. 2. 8. .NET 6] Hot Chocolate GraphQL : query 실행 (2) 프로젝트를 실행해보자. url에 graphql을 붙여서 접속해보자. 브라우저에 Banana Cake Pop GraphQL IDE가 나타난다. Create document -> Apply 버튼을 누른다. 서버가 제대로 설정되었으면 green online이 상단 우측에 표시된다. 화면은 4부분으로 나뉘어있다. 상단좌측 : GraphQL server로 보내는 query를 입력 하단좌측 : Variable, header를 수정 상단우측 : Response 확인 하단우측 : 최근 쿼리 확인 이제 query를 보내자. 아래 쿼리를 상단좌측 칸에 붙여넣고 Run 버튼을 클릭한다. { book { title author { name } } } query를 추가해보자 public string SayHello(string.. 2022. 2. 8. 이전 1 ··· 32 33 34 35 36 37 38 ··· 50 다음 728x90 반응형