Ir para o conteúdo do rodapé
Iron Academy Logo
Aplicação C#
Aplicação C#

Outras categorias

Dados de exemplo e filtragem - Criando uma API de exemplo em C#

Tim Corey
42m 43s

Ao trabalhar com desenvolvimento web hoje em dia, uma ferramenta importante é uma API Web de exemplo — algo que você pode usar para testar aplicativos web de front-end, dispositivos móveis ou até mesmo aplicativos de software. Em seu vídeo detalhado sobre " Dados de Amostra e Filtragem - Criando uma API de Amostra em C# ", Tim Corey nos guia na criação de uma API Web em C# que carrega dados de amostra de um arquivo JSON, configura a filtragem e está preparada para implantação como um contêiner Docker ou um aplicativo web tradicional.

Neste artigo, exploraremos a abordagem de Tim passo a passo, explicando os conceitos principais da API Web do ASP.NET Core , APIs mínimas e serviços HTTP.

Introdução à API Web de Exemplo

Tim começa explicando por que criar um novo projeto de API Web é tão importante para os desenvolvedores. Seja para desenvolvimento para dispositivos móveis, aplicativos web ou outros tipos de software, ter uma API de exemplo leve torna os testes mais rápidos e fáceis.

Tim afirma que, ao final do projeto, teremos:

  • Uma API minimalista usando ASP.NET Core e .NET Core.

  • Uma API documentada com suporte a OpenAPI (Swagger UI),

  • Exames de saúde,

  • Erros e lentidões simulados,

  • Implantação em um contêiner Docker e em um servidor VPS.

Este pequeno projeto permitirá que os desenvolvedores interajam facilmente com serviços HTTP, através de métodos HTTP como GET, PUT, POST e DELETE.

Configuração do projeto e dados de exemplo

Tim começa estruturando o projeto da API Web dentro do Visual Studio, o popular ambiente de desenvolvimento integrado da Microsoft.

À 1:07, Tim cria uma nova pasta de dados e adiciona um arquivo courseData.json. Ele menciona que seu site, timcorey.com, usa um sistema semelhante — apenas um grande arquivo JSON nos bastidores, funcionando como um serviço web.

Pontos principais da configuração de Tim:

  • Utilize arquivos JSON para dados de exemplo, evitando assim a necessidade de um banco de dados ou Entity Framework.

  • Mantenha os contêineres pequenos, evitando serviços adicionais como servidores SQL.

  • Os dados não são mutáveis ​​— não há necessidade de armazenar as alterações; Basta redefinir os dados quando necessário.

Essa escolha reflete os princípios REST (Representational State Transfer) de trabalhar com recursos existentes.

Entendendo a estrutura de dados do curso

Tim analisa cuidadosamente a estrutura do arquivo JSON de exemplo:

  • ID (inteiro),

  • Pré-encomenda (booleano),

  • URL do curso (string),

  • Tipo de curso (texto),

  • Nome, Número de aulas, Duração do curso em horas (em números),

  • Descrição, URL da imagem,

  • Preço em USD,

  • Link de pré-visualização.

Tim explica aos 3:29 que todos os preços são baseados em dólares americanos; No entanto, os impostos locais (IVA) podem alterar o preço final.

Cada um desses campos é posteriormente mapeado para uma classe de modelo em C# — um elemento fundamental na construção de APIs Web ASP.NET .

Criando a Classe Modelo do Curso

Ao começar a programar em .NET Core , Tim cria um arquivo CourseModel.cs dentro de uma nova pasta Models.

Às 4h47, ele usa a opção "Colar Especial > Colar JSON como Classes" do Visual Studio para criar instantaneamente uma classe com base na estrutura JSON. Tim destaca:

  • Nomenclatura PascalCase adequada (importante para APIs web em C#),

  • Strings obrigatórias versus strings anuláveis ​​(6:02),

  • Evitar armazenar valores nulos onde uma string vazia seria suficiente.

Criar uma classe de modelo robusta é crucial para permitir a comunicação de dados entre clientes e o servidor.

Carregando dados na memória

Tim prossegue criando uma classe CourseData.cs para gerenciar o carregamento da lista de cursos na memória.

Etapas principais:

  • Utilize System.Text.Json para desserialização.

  • Defina PropertyNameCaseInsensitive = true (8:04) para mapear JSON em camelCase para campos C# em PascalCase,

  • Use Path.Combine (9:04) para acesso a arquivos em diferentes plataformas,

  • Garantir a diferenciação entre maiúsculas e minúsculas ao lidar com servidores Linux (9:59).

Os cursos são carregados em uma lista pública. propriedade, garantindo acesso rápido sem precisar acessar repetidamente o banco de dados.

Às 11h04, Tim destaca que, se a desserialização falhar, uma nova lista vazia é criada para evitar erros de referência nula — uma prática recomendada na construção de APIs robustas.

Registrando os dados do curso na injeção de dependência

Em seguida, Tim mostra como registrar a classe CourseData usando AddTransient no contêiner de serviços.

Ele explica que, embora os dados sejam somente leitura, o uso de um serviço transitório evita problemas de modificação acidental. Essa abordagem está alinhada com os padrões modernos de desenvolvimento de API Web do ASP.NET Core .

Criando pontos finais do curso

Às 14h03, Tim começa a criar os endpoints para a API de exemplo:

  • Um método GET em /courses para recuperar todos os cursos,

  • Um método de extensão AddCourseEndpoints para um código mais limpo.

Essa abordagem modular simplifica a escalabilidade do seu projeto de API Web — uma técnica essencial ao gerenciar grandes serviços HTTP ou múltiplos endpoints.

Building A Sample Api In Csharp 1 related to Criando pontos finais do curso

Tim também configura o URL de inicialização para a interface do usuário Swagger, facilitando os testes.

Solução de problemas: incompatibilidades de tipos de dados

Ao testar o novo endpoint, Tim se depara com um erro de código de status relacionado ao campo CourseLengthInHours. Ele percebe que alguns cursos têm carga horária fracionária (como 2,5), exigindo um valor do tipo double em vez de int.

Tim corrige o CourseModel, demonstrando a importância de uma verificação minuciosa de erros e do respeito aos tipos de dados ao consumir recursos externos da web.

Aprimorando a API com a pesquisa de ID

Tim amplia a funcionalidade:

  • Use LoadAllCourses para recuperar todos os cursos.

  • Use LoadCourseById para encontrar um curso pelo ID.

Ele aprimora o tratamento de erros verificando se o curso existe. Caso contrário, Tim usa return NotFound() — retornando um código de status HTTP apropriado para o cliente.

Isso está de acordo com as práticas do estilo arquitetônico RESTful, onde cada método HTTP comunica claramente o resultado da operação.

Adicionando filtros por tipo de curso e pesquisa.

Um simples método GET não é suficiente — os serviços web reais precisam de recursos de filtragem.

Tim aprimora a função LoadAllCourses para aceitar parâmetros de consulta:

  • tipoDeCurso (string),

  • pesquisar (cadeia de caracteres).

Ele explica como lidar com parâmetros opcionais de forma segura usando String.IsNullOrWhiteSpace.

A filtragem por tipo de curso utiliza RemoveAll com String.Compare, ignorando diferenças entre maiúsculas e minúsculas. A busca pelo nome e breve descrição do curso utiliza o operador .Contém, com uma comparação que ignora maiúsculas e minúsculas.

Tim testa cenários como:

  • Filtrar por "Curso Master"

  • Pesquisando por "web" ou "SQL"

  • Combinando pesquisa e tipo de curso para resultados mais refinados

Isso proporciona uma experiência totalmente interativa para usuários em aplicativos web, aplicativos móveis ou clientes que se comunicam via HTTP. Para obter informações mais detalhadas, consulte o vídeo completo.

Considerações finais e próximos passos

Ao final da aula, Tim criou:

  • Uma API Web ASP.NET Core funcional,

  • Recursos de filtragem e pesquisa,

  • Tratamento adequado de erros (NotFound, Ok, etc.),

  • Suporte para Swagger UI e documentação OpenAPI.

Tim adianta que, em seguida, ele lidará com o Compartilhamento de Recursos de Origem Cruzada (CORS) — fundamental para permitir que clientes da internet e diferentes domínios acessem a API livremente.

Tim conclui com uma mensagem de incentivo: a programação às vezes envolve obstáculos, mas é gratificante.

Conclusão

Seguindo o vídeo de Tim Corey, você pode criar um novo projeto de API Web no Visual Studio, carregar dados de exemplo, criar endpoints e implementar filtros poderosos — tudo baseado nos princípios RESTful e nos padrões do ASP.NET Core .

Seja para testar páginas da web, criar APIs para dispositivos móveis ou trabalhar com recursos existentes, essa configuração garante acesso rápido e confiável aos dados por meio de métodos HTTP.

Continue praticando esses padrões no .NET Core e, em breve, você estará criando serviços web robustos que se comunicam perfeitamente entre clientes, servidores e a internet!

Hero Worlddot related to Dados de exemplo e filtragem - Criando uma API de exemplo em C#
Hero Affiliate related to Dados de exemplo e filtragem - Criando uma API de exemplo em C#

Ganhe mais compartilhando o que você ama.

Você cria conteúdo para desenvolvedores que trabalham com .NET, C#, Java, Python ou Node.js? Transforme sua expertise em renda extra!

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim