O NGRAPHQL é uma estrutura para implementar as APIs grafql no .NET. Ele fornece componentes do lado do servidor e do cliente.
Aqui está uma visão geral do projeto, o que é diferente e por que eu o criei em primeiro lugar.
Os binários NgraphQL são distribuídos como um conjunto de pacotes Nuget:
| Pacote | Descrição |
|---|---|
| Ngraphql | Classes básicas compartilhadas pelos componentes do cliente e do servidor. |
| Ngraphql.client | Cliente grafql. |
| Ngraphql.server | Implementação do servidor GraphQL não vinculada a um protocolo de transporte específico. |
| Ngraphql.server.aspnetcore | Servidor GraphQL HTTP com base na pilha Core ASP.NET. |
O repo contém um projeto de teste com o servidor http: things.graphql.httpServer. Você pode iniciá -lo diretamente como um projeto de inicialização no Visual Studio.
Instale o Playground GraphQL para Extensão Chrome da Chrome Store e inicie o projeto. Ele iniciará o servidor da Web e abrirá a página do Playground GraphQL. Digite o seguinte URL como o destino: http: // localhost: 55571/grafql e execute uma amostra de consulta: "Query {Things {Nome Kind theflags abcguids}}". O servidor de teste implementa uma API do GraphQL sobre coisas abstratas e é vazia de qualquer significado semântico real - é apenas para fins de teste. O objetivo deste aplicativo é fornecer vários tipos e métodos que abrangem os muitos aspectos do protocolo GraphQL .
Execute os testes de unidade e veja os muitos exemplos de solicitação/resposta usados lá. Os testes de unidade escrevem um log detalhado à medida que avançam. Execute os testes, localize o arquivo de log na pasta Bin e procure por muitos exemplos de solicitações e respostas grafql, juntamente com as métricas. Veja este arquivo aqui: unittestsllog.
Veja também o exemplo de Guerra nas Estrelas em um repositório GitHub separado.
A Vita ORM contém um projeto de amostra implementando um servidor GraphQL para um aplicativo de amostra de livraria. Entre outras coisas, mostra como (n+1) o problema pode ser tratado com eficiência automaticamente por um ORM inteligente o suficiente. A maioria das entidades relacionadas como Book.Publisher ou Book.Authores são carregadas de lotes automaticamente pelo ORM.
Veja as páginas do Wiki para este projeto.
.NET Standard 2.0, .Net 6/8.