Tworzę nowy projekt MVC4, a badania doprowadziły mnie do przekonania, że komunikowanie się z javascript po stronie serwera jest teraz lepiej osiągane dzięki strukturze API, a nie kontrolerom. Czy moje zrozumienie jest prawidłowe?Web API w rozwiązaniu MVC w oddzielnym projekcie
Zakładam, że mogę dzielić się wszystkimi moimi atrybutami itp. Pomiędzy interfejsem API sieci Web a kontrolerami MVC, więc na pierwszy rzut oka nie wydaje mi się to ogromną zmianą.
Kiedy konfiguruję aplikacje, lubię dzielić komponenty na projekty. Mój plan polegał na projekcie MVC i projekcie web API. Ale natknąłem się na problemy. Na przykład znalazłem 2 aplikacje jako oddzielną konfigurację routingu itp.
Moje pytanie brzmi: czy w aplikacji MVC struktura interfejsu API sieci powinna znajdować się w obrębie tego samego projektu, czy też interfejs webowy powinien być oddzielony do własnego projektu i obejść problemy?
+1 Doskonała odpowiedź. Początkowo myślałem, że zarówno MVC, jak i WebAPI mogą udostępniać część kodu, szczególnie w przypadku filtrów, wiązania modelu itp., Ale są one całkowicie różne. – VJAI
Dzięki za tak szczegółową odpowiedź. Tworzę nową aplikację internetową, używając kontrolerów mvc, aby wyświetlać treści w moich widokach. Moim planem jest wykorzystanie interfejsu API do obsługi komunikacji od strony mojego klienta js (strona zawiera kilka bogatych funkcji) do serwera za pośrednictwem interfejsu WWW. Niektóre firmy zewnętrzne budują komponenty witryny, które zostaną zintegrowane z witryną i będą używać interfejsu API do komunikacji z serwerem. Czy z tego, co przeczytałem, czy twoja sugestia byłaby taka, żeby mieć mvc i web api w jednym projekcie? Może mieć api internetowe w folderze "api". – amateur
Tak, w takim scenariuszu wystarczy rozpocząć nowy projekt MVC4 w Visual Studio, a gdy zostaniesz poproszony o szablon projektu (drugi ekran), po prostu wybierz Web API. To zainstaluje Web API od Nuget iw przypadku, o którym mówisz, powinno być idealnie w porządku. Otrzymasz oddzielny plik konfiguracyjny Web API podłączony do Global.asax. Dodatkowo możesz oddzielić kontrolery API w oddzielnym folderze (domyślnie są one razem ze sterownikami MVC). Wreszcie, domyślne trasy są oczywiście skonfigurowane osobno i nie przeszkadzają sobie nawzajem. –