Verbrauchen ASP.NET WebApi von MVC-controller

Habe ich begonnen, die Arbeit an einem neuen Projekt, wo ich bin freilegen-client-Funktionalität über WebApi, so dass ich Sie wiederverwenden können, die dieselbe Funktionalität über mehrere Geräte hinweg, aber es gibt einige Funktionen, die geteilt wurde, zwischen mobilen Geräten und dem Host-Anwendung.

Meine Frage ist, obwohl ich weiß, wie Sie verbrauchen die WebApi von Geräten, die ich bin Zusammenstellung ein bisschen leer auf dem besten Weg, die besten Praktiken, oder einfach nur etwas, das funktioniert, wie verbrauchen die WebApi von innerhalb der MVC-Projekt, das hosting der api.

Mein Erster Gedanke wäre, nur instanzieren der Controller benötigt die Art und Weise, ich würde jede andere Klasse aber ich habe den leisen Verdacht, dass es zwar Arbeit ist dies ein schlechter Ansatz.

Der andere Gedanke wäre die Verwendung der HttpClient. Obwohl ich ' ve hatte kein Glück mit es wie ich finde nie die api

var client = new HttpClient(new HttpServer(GlobalConfiguration.Configuration));
client.PutAsJsonAsync("/api/project/login", Json(model));
  • Warum hat die Anwendung verwenden müssen Ihre eigenen nach außen gerichteten API? Wenn Sie in der Anwendung benötigt Funktionen, die die API, kann es nicht einfach so nennen, die Funktion direkt? Wenn Sie ein WebAPI-Methode und einer Controller-Methode, die brauchen, um das gleiche zu tun, das "gleiche Ding" sollte abstrahiert werden, in eine Funktion oder ein Objekt im shared code und diese beiden Methoden nennen es intern.
  • +1 zu den oben genannten; auch wenn Sie zwei separate Lösungen können Sie einfach auf eine von den anderen-und direkt verbrauchen die Objekte, aus denen die WebAPI...
  • Antwort auf deine zweite Ansatz kann im folgenden gefunden werden. asp.net/web-api/overview/web-api-clients/...
  • Naja David, ich Stimme mit Ihnen überein, aber ich denke es wird davon abhängen, das Projekt, business/infra Anforderungen, die in einer verteilten Anwendung am besten wäre es, die API zu verwenden, um die Datenbank und/oder Logik als einem zentralen "access point", ist es besser dann verschiedene Versionen einer DLL in eine Menge von Lösungen, die auf Servern oder Geräten wie Smartphones, Tablets oder Windows-Anwendungen. In einer verteilten Lösung, die Sie nicht behandeln können es intern selbst wenn eine Ihrer apps befindet sich im selben server wegen Wartungsarbeiten. Ich habe eine Lösung in diesem Szenario. Aber wieder habe ich mit Ihnen einverstanden, wenn die Lösung zulässt.
InformationsquelleAutor Marqueone | 2013-09-08
Schreibe einen Kommentar