2017-01-24 4 views
3

У меня есть работа, которую нужно сделать для школы вокруг Microservices.Шлюз API .NET Core

У меня есть архитектурная концепция, но вам нужна реализация, чтобы хвастаться. Я буду использовать angular2 в качестве клиента, хотел бы использовать .NET API-интерфейс API для отправки моих запросов на разные службы.

Каков наилучший подход для этого? Я немного что-то рассказываю об использовании Rx.Net, но нет окончательного примера или реализации, за которыми я могу следовать.

Итак, что мне нужно сделать для реализации шлюза API в .NET Core?

+0

Не запрашивайте рекомендации по библиотеке при переполнении стека. [link] (http://stackoverflow.com/help/dont-ask) – galister

+0

Я отредактирую его, спасибо! – TanguyB

+0

О каких API мы говорим? HTTP? – galister

ответ

0

Вы хотите иметь сервер, который прослушивает входящие вызовы API, например. HttpListener.

Внутри обработчика входящих запросов вы заглядываете в запрос и решаете, где должен быть передан вызов API.

Затем вы используете что-то вроде HttpClient, чтобы сделать другой запрос к фактической конечной точке API (как можно ближе к оригинальному запросу), и вы передаете ответ обратно пользователю.

Он должен быть в обработчике запросов слушателя, и ответ на исходный запрос является ответом от реального API.

См. Документы MSDN в HttpListener.

Также хорошо читать: Handling multiple requests with C# HttpListener

+0

HttpListeners - это примечание, реализованное на .NET Core, так как оно предназначено только для окон. – TanguyB

4

Это может или не может помочь, но я в настоящее время строит шлюз API в ядре .NET.

Вы можете найти его на https://github.com/TomPallister/Ocelot.

Код немного рулевой, но несколько человек работают над этим сейчас, поэтому, надеюсь, мы сможем его улучшить со временем.

+0

Приятно вам ответить. Однако этот вопрос является Off-Topic для StackOverflow, так как «Вопросы, предлагающие нам рекомендовать или находить книгу, инструмент, библиотеку программного обеспечения, учебник или другой ресурс вне сайта, не относятся к теме для переполнения стека, поскольку они, как правило, привлекают упрямые ответы и спам .' –

+0

Я пытаюсь использовать Ocelot, но я не могу заставить его работать :(Я создаю новый проект, я обновляю все библиотеки, устанавливаю Ocelot, настраиваю ReRoutes, но когда я его запускаю, он просто загружается – Piyey

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