paso - web api c# tutorial
¿Cuál es la forma correcta de autohospedar una API web? (1)
El HttpSelfHostServer ahora está marcado como legado en Nuget. Sin embargo, Owin HTTPListener solo ha sido RTM durante un período bastante corto de tiempo.
Además, parte de la intención de Owin es garantizar que la forma en que configura el middleware sea idéntica, independientemente de cómo se aloje. Por lo tanto, es probable que no vea muchos artículos dirigidos directamente al host Owin HttpListener porque no debería tenerse en cuenta qué host está utilizando.
El OwinHttpListener actualmente utiliza el .net HttpListener estándar bajo las cubiertas, que en realidad es lo mismo que el HttpSelfHostServer. Por lo tanto, cosas como SSL deberían configurarse de la misma manera.
En lo que se refiere a la autenticación, si miraste Microsoft.Owin.Security, lo más probable es que todo lo que necesites esté allí.
No estoy pidiendo un consejo de mejores prácticas ya que hay numerosas publicaciones en blogs y tutoriales sobre el tema en Internet.
Estoy pidiendo confusión, ya que Microsoft hizo un gran cambio en el procedimiento de auto-alojamiento completo y cada tutorial que encuentro toma un enfoque diferente, obsoleto o desconocido.
Mi objetivo es configurar una API web alojada en un servicio heredado de Windows para controlar varias tareas de larga ejecución desde un cliente que no sea de Windows, como una aplicación de Android donde la integración de un cliente WCF / SOAP realmente puede ser un PITA.
Soy consciente del hecho de que WCF es capaz de ofrecer un servicio RESTful, pero dado que Web API es realmente adecuado para esa tarea, pensé que podía intentarlo.
Así es como actualmente inicio mi API alojada usando OWIN ( Katana ):
public class ApiBootstrap {
var httpConfiguration = new HttpConfiguration();
// ... configure routes etc.
appBuilder.UseWebApi(httpConfiguration); // appBuilder = IAppBuilder
var disposable = WebApp.Start<ApiBootstrapper>(_myBaseUri);
}
Pero la mayoría de los tutoriales tienen un enfoque diferente:
var config = new HttpSelfHostConfiguration("http://localhost:999");
// ... configure routes etc..
var server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
Ahora, entiendo que la clase HttpSelfHostServer
es de System.Web.Http.SelfHost
y no utiliza OWIN , y ambas funcionan bien.
Pero estoy luchando durante días para lograr tareas muy sencillas, como asegurar la conexión mediante SSL , crear autorización, etc., simplemente porque cada tutorial que encuentro sobre esos temas se refiere al método autohospedado que no usa OWIN . Pero AFAIK, OWIN ( Katana ) es el enfoque preferido de Microsofts para lograr el autohospedaje.
Como principiante, ¡estoy completamente confundido e indefenso!
Editar : 4 votaciones ascendentes, 1 favorito y 30 visitas en solo 6 minutos, pero todavía no hay respuesta. Realmente no puedo decir si estoy haciendo geniales cosas de café aquí o si es solo una pregunta estúpida increíble.