У меня есть два веб-приложения ASP.NET Core (на разных физических серверах), и оба используют EF Core. Хотя оба являются «серверами», также собираются данные от другого (т. Е. Один из них также является «клиентом»).Как лучше всего общаться между двумя приложениями ASP.NET Core?
ASP.NET Core отличается тем, что нет «MVC» и «WebAPI», он сочетает в себе оба. Я не уверен, какие новые API использовать.
Как перенести данные с одного на другой?
Моя первоначальная мысль заключается в том, что приложение «клиент» имеет аутентифицированное и разрешенное действие GET, которое возвращает данные. Но как? Может ли он напрямую возвращать объект EF, или я несу ответственность за сериализацию в/из JSON? Должен ли он вернуть IActionResult
или что-то еще? Должен ли он быть обычным или AJAX-запросом? Является ли OWIN связанным с этим каким-то образом?
Есть ли умная техника, которая теперь доступна с помощью ASP.NET Core? Мне не нужно решение, просто некоторые указатели в правильном направлении.
С точки зрения клиента, не имеет значения, является ли сервер «ядром» или «веб-API» или любой другой технологией. Полученное внешнее поведение одинаково независимо от того, какая структура используется под капотом. Я предполагаю, что у вас будут действия, которые возвращают данные (вероятно, формат JSON, хотя вы можете использовать любой желаемый формат), как и в предыдущих версиях Web API. – David
@ Давид Конечно, но Core - новый и блестящий, и у меня есть подозрение, что может быть классный материал, чтобы сделать все это просто. Например, он позволяет возвращать все виды данных из действий, которые раньше не могли быть выполнены. Я вообще не хочу изобретать велосипед. – grokky
В предыдущих версиях Web API, если вы хотите «вернуть объект EF», вы просто «вернете» этот объект из этого метода. Я не понимаю, как это могло быть проще. В C#, когда вы хотите что-то вернуть из метода, вы «возвращаете» его. Независимо от того, насколько он новый, инфраструктура по-прежнему использует C#. Может быть, вы можете пояснить пример того, что вы пытаетесь упростить? – David