Facebook Pixel
Criando Endpoints REST API com C#, Visual Studio e .NET Core – O Básico

Criando Endpoints REST API com C#, Visual Studio e .NET Core – O Básico

Este artigo é parte da série:

Neste artigo, vamos criar dois endpoints utilizando C# e .NET Core. Um deles terá retorno simples, enquanto o segundo terá como retorno uma lista de objetos em formato JSON.

1. Para iniciar o trabalho, vamos abrir uma nova branch no GitHub. Para fins desse exemplo eu a chamei de “v1”.

2. Um controller é um arquivo que contém os códigos de programação propriamente ditos do nosso programa, a camada de regra de negócios. Vamos então criar nosso primeiro controller, seguindo os passos:
– Add – Controllers
– Mudar o tipo para API do lado esquerdo do menu
– Selecionar API Controller Empty

3. Um model contém as estruturas de dados que o código vai manipular. Para fins de exemplo, vamos criar um model. Para isso, vamos criar uma pasta com o nome “Models”, o nome da pasta precisa ser esse. Dentro dela uma classe com o nosso primeiro model, que vou chamar de “UF”. O objetivo deste model, neste exemplo, é gerarmos uma lista de objetos tipada.

4. Eu chamei a classe de UF pois ela terá uma lista de UFs e suas capitais. O conteúdo do código é o seguinte:

namespace Treino_REST_02.Models
{
    public class UF
    {
        public int Id { get; set; }
        public required string Nome { get; set; }
        public string? Capital { get; set; }
    }
}

A linha 6 possui o modficador “required” para validar que o conteúdo do campo será preenchido quando o objeto for criado, enquanto a linha 7 está com o modificador ? junto ao tipo string para informar que o conteúdo pode ser nulo. Em ambos os casos o comando poderia ser simplesmente “public string …”

5. Agora vamos preencher o código do nosso cotroller “T01Controller.cs” com um código bem simples que gera dois tipos de retorno. O método “Soma” vai retorna o resultado da soma de dois valores, enquanto o método “ListaUF” cai entregar uma relação de objetos do tipo UF, que criamos no passo anterior. O retorno do método “Soma” é apenas um valor, enquanto o método “ListaUF” retorna uma lista de objetos em formato JSON.

using Microsoft.AspNetCore.Mvc;
using Treino_REST_02.Models;

namespace Treino_REST_02.Controllers
{
    [Route("api/Soma")]
    [ApiController]
    public class SomaController : ControllerBase
    {

        [HttpPost(Name = "Soma")]
        public int Soma(int A, int B) 
        {
            return A + B;
        }

    }

    [Route("api/ListaUF")]
    [ApiController]
    public class ListaUFController : ControllerBase
    {

        [HttpGet(Name = "Divisão")]
        public IEnumerable<UF> ListaUF()
        {
            return new List<UF>
            {
                new UF {Id = 1, Nome = "RJ", Capital = "Rio de Janeiro" },
                new UF {Id = 2, Nome = "SP", Capital = "São Paulo" },
                new UF {Id = 3, Nome = "BA", Capital = "Salvador" }
            };
        }
    }
}

E agora as explicações:

Linha 6:
O conteúdo original foi alterado porque mantendo Route como “api/[controller]”, o título que iria aparecer no Swagger seria o nome da classe, ou seja, “Soma”.

Linha 7:
Informa que a classe é uma API controller.

Linha 8:
Observe que a classe precisa herdar de ControllerBase.

Linhas 11 e 24:
Informa o verbo que será tratado na chamada HTTP, em nosso caso, Post e Get.

Execute o programa e observe que o Swagger, além de mostrar os dois endpoints que acabamos de criar, ainda mostra a estrutura do model “UF”.

Para finalizar vamos atualizar o GitHub.

  1. Dê um nome para o que terminamos de fazer e clicando em “Commit All” na aba “Git Changes”.
  2. Clique em “Push”.
  3. Clique em “View all commits”.
  4. Mude a branch para “Master”, no rodapé do Visual Studio.
  5. Faça o merge de v1 para master, com clique direito em v1 estando a master selecionada.
  6. Clique direito em “master” e então em “Sync” para efetivamente sincronizar com o GitHub.
  7. Agora a branch v1 já pode ser apagada.

Não esqueça de, sempre que for iniciar novas modificações, criar uma nova branch.

Por hoje é só, nos próximos artigos vamos aprender como implementar novos verbos e como enviar respostas com código diferente de 200 (OK).

Deixe seu comentário