Web Api

Criando um Self Host Web API

Relembrando

No último post (Desenvolvendo suas aplicações com Self Host), vimos o que é e como criar um Self Host. Hoje vamos ver como fazer um Self Host trabalhar como um Web Api.

Primeiro Passo

Bem o primeiro passo é como o do primeiro artigo, que é criar um novo projeto do tipo Console Application.

Web API

Com o projeto criado vamos agora preparar nosso Self Host, para isso vamos instalar o pacote Owin via nuget:

Web API
Lembrando que ele instala os seguintes pacotes:

Web API

 

Agora conforme no projeto anterior temos que configurar nosso Progam.cs e criar a classe Startup.cs conforme abaixo:

Web API
Program.cs

Web API
Startup.cs

Ao compilar vamos ter o seguinte retorno conforme no artigo anterior:

Web API

*No caso de dúvida veja o artigo anterior (Desenvolvendo suas aplicações com Self Host) para entender melhor o processo.

 

Criando o Web API

Feito o processo de se criar o Self Host, agora vamos criar nosso Web API, o primeiro passo é instalar o pacote de Web API do Owin:

Web API
Os seguintes pacotes serão instalados:

Web API

Feito isso as modificações para responder ao Web API são simples, vamos modificar nosso Startu.cs e vamos colocar o seguinte código:

 

public void Configuration(IAppBuilder app)
{
 // Configure Web API for self-host. 
 var config = new HttpConfiguration();
 config.Routes.MapHttpRoute(
 name: "DefaultApi",
 routeTemplate: "api/{controller}/{id}",
 defaults: new { id = RouteParameter.Optional }
 );

 app.UseWebApi(config);
}

 

Feito isso agora já temos nossas Rotas configuradas, o próximo passo é criar nossos Controllers, abaixo vamos criar um Controller de exemplo, para isso vamos criar um Folder Controller em nosso projeto:

Web API

Dentro dessa pasta vamos criar nossa classe DemoController, ela vai ter o seguinte código:

using System.Collections.Generic;
using System.Web.Http;

namespace SelfHostWebApi.Controller
{
 public class DemoController : ApiController
 {
 // GET api/demo 
 public IEnumerable<string> Get()
 {
 return new string[] { "Hello", "World" };
 }

 // GET api/demo/5 
 public string Get(int id)
 {
 return "Hello, World!";
 }

 // POST api/demo 
 public void Post([FromBody]string value)
 {
 }

 // PUT api/demo/5 
 public void Put(int id, [FromBody]string value)
 {
 }

 // DELETE api/demo/5 
 public void Delete(int id)
 {
 }
 }
}

 

*A classe tem que Herdar de ApiController, igual nos projetos Web API do Visual Studio

 

Pronto, só com isso já podemos compilar nosso projeto e ao acessar a Url http://localhost:12345/api/Demo teremos o seguinte o seguinte retorno:

Web API

Conclusão

Podemos ver como é simples implementar um Web API utilizando o self host, assim poderemos criar pequenas aplicações com servidores embarcados, sem a necessidade de que se tenha um servidor com IIS.

Referências

https://docs.microsoft.com/en-us/aspnet/web-api/overview/older-versions/self-host-a-web-api
https://codeopinion.com/self-host-asp-net-web-api/

 

Posted in .NET, Blog, C#, Owin and tagged , .

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *