2

У меня есть два веб-приложения ASP.NET Core (на разных физических серверах), и оба используют EF Core. Хотя оба являются «серверами», также собираются данные от другого (т. Е. Один из них также является «клиентом»).Как лучше всего общаться между двумя приложениями ASP.NET Core?

ASP.NET Core отличается тем, что нет «MVC» и «WebAPI», он сочетает в себе оба. Я не уверен, какие новые API использовать.

Как перенести данные с одного на другой?

Моя первоначальная мысль заключается в том, что приложение «клиент» имеет аутентифицированное и разрешенное действие GET, которое возвращает данные. Но как? Может ли он напрямую возвращать объект EF, или я несу ответственность за сериализацию в/из JSON? Должен ли он вернуть IActionResult или что-то еще? Должен ли он быть обычным или AJAX-запросом? Является ли OWIN связанным с этим каким-то образом?

Есть ли умная техника, которая теперь доступна с помощью ASP.NET Core? Мне не нужно решение, просто некоторые указатели в правильном направлении.

+3

С точки зрения клиента, не имеет значения, является ли сервер «ядром» или «веб-API» или любой другой технологией. Полученное внешнее поведение одинаково независимо от того, какая структура используется под капотом. Я предполагаю, что у вас будут действия, которые возвращают данные (вероятно, формат JSON, хотя вы можете использовать любой желаемый формат), как и в предыдущих версиях Web API. – David

+0

@ Давид Конечно, но Core - новый и блестящий, и у меня есть подозрение, что может быть классный материал, чтобы сделать все это просто. Например, он позволяет возвращать все виды данных из действий, которые раньше не могли быть выполнены. Я вообще не хочу изобретать велосипед. – grokky

+0

В предыдущих версиях Web API, если вы хотите «вернуть объект EF», вы просто «вернете» этот объект из этого метода. Я не понимаю, как это могло быть проще. В C#, когда вы хотите что-то вернуть из метода, вы «возвращаете» его. Независимо от того, насколько он новый, инфраструктура по-прежнему использует C#. Может быть, вы можете пояснить пример того, что вы пытаетесь упростить? – David

ответ

2

Хотя структура может иметь новые вспомогательные методы/объекты/и т. Д. здесь или там, ничего не изменилось в отношении HTTP-связи между клиентом и сервером. Действительно, с точки зрения клиента, на сервере нет никакой разницы, независимо от того, какая технология используется под капотом.

Можно ли непосредственно возвращать EF объект

Он уверен, может, так же, как Web API в прошлом. Что-то же просто, как:

public Widget Get(int id) 
{ 
    return _widgetRepository.Get(id); 
} 

(Предполагая реализацию хранилища какой-то здесь, но вы получите идею.)

ответ HTTP по умолчанию для этого, как правило, JSON-формат тела ответа и a 200 OK код ответа. У вас может быть больше контроля над этим с помощью различных помощников в каркасе, есть приличный обзор и введение в пару из них here.

Независимо от того, как вы возвращаете какой-либо результат с сервера, клиент по-прежнему получает HTTP-ответ, как и любой другой. Коды, заголовки, содержание и т.д.

-1

SignalR

..plus еще несколько символов, чтобы я мог пройти проверку на 30 символов мин.

+0

SignalR предназначен для связи между клиентами – Alexan

Смежные вопросы