|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
Привет. Как клиент узнает какие интерфейсы доступны у Web API? В WCF для этого есть специальный MEF-endpoint. Там создается прокси на клиенте и все нтерфейсы клиенту сразу же становятся известны. В какой-нибудь Web API REST нет никаких прокси. Как задисковерить чего этот зйпиай экспонирует? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2020, 19:43 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
Renziglov, на данный момент есть OpenAPI спецификация, изначально известная как Swagger, для описания и взаимодействия с API ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2020, 09:59 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
skyANA, Я вполне подозреваю, что что-то есть. Но если это что-то просто заставляет разработчика API составлять некий документ, а получателя читать этот документ, чтоб получить список интерфейсов, то мои подозрения оправдываются. Если вы работали с этим, можете сказать как именно открываются интерфейсы? КоротЕнько, вот как я сказал про MEX и mexHttpBinding в случае с WCF. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2020, 16:58 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
Renziglov Я вполне подозреваю, что что-то есть. Но если это что-то просто заставляет разработчика API составлять некий документ Нет, моглы бы и потратить пять минут на чтение хотя бы Википедии. OpenAPI (Swagger) - это целый набор инструментов, позволяющий как сгенерировать документацию по вашему коду, так и библиотеку-клиента к вашему API. Эта библиотека оформляется как NuGet-пакет, и кому надо, тот ставит себе и пользуется. А вот пример сгенерированной API-документации для разработчика: https://petstore.swagger.io/ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2020, 19:01 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Именно в Википедии и потратил. А вам спасибо за линк, он все прояснил. Т.е. создается документация и пользователь ее читает. Умно. На одной из микрософтовских конференций мне была выдана маечка с таким принтом: .NOT .NET ASP.NET Forms Blazor WCF gRPC JavaScript C# 8.0 Надо смелее осваивать gRPC, товарищи! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2020, 19:13 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
Renziglov Надо смелее осваивать gRPC, товарищи! Зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2020, 20:08 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, быстро, маленький размер сообщения, контракт на обращение к эндпоинту- все за что любят WCF. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 08:30 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
Renziglov Именно в Википедии и потратил. И до второго параграфа даже не дочитали что-ли? ЦитируюOpenAPI рассматривается как универсальный интерфейс для пользователей (клиентов) по взаимодействию с сервисами (серверами). Если спроектирована спецификация для некоторого сервиса, то на её основании можно генерировать исходный код для библиотек клиентских приложений, текстовую документацию для пользователей, варианты тестирования и др . Для этих действий имеется большой набор инструментов для различных языков программирования и платформИ ссылки на Getting Started и Tools and Integrations. Вообщем если вы хотите аналог "прокси на клиенте и все нтерфейсы клиенту сразу же становятся известны", то повторюсь, что не проблема этот самый аналог сгенерировать и отдать вашему пользователю. Или он самостоятельно может это сделать под нужный ему язык и платформу. А может конечно и документацию читать и писать код ручками. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2020, 12:19 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
vb_sub за что любят WCF. За угрёбищный SOAP? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2020, 13:28 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
fkthat За угрёбищный SOAP? Ээ.. а что, при работе с WCF кто-то работает непосредственно с SOAP? Мне доводилось сталкиваться со случаями, когда аппликухи на джаве при работе с веб-сервисами костылили SOAP-разметку, но в дотнете, где это всё хозяйство глубоко под капотом?? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 07:49 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
Дмитрий Мух А может конечно и документацию читать и писать код ручками. Ну, когда из какого-нибудь развесистого API нужно всего пару методов, то, может быть, проще и руками написать :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 10:10 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
fkthat Дмитрий Мух А может конечно и документацию читать и писать код ручками. Ну, когда из какого-нибудь развесистого API нужно всего пару методов, то, может быть, проще и руками написать :)) Написать что? Клиента, или вызов этих пары методов у готового клиента? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 10:28 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
fkthat vb_sub за что любят WCF. За угрёбищный SOAP? Можно его любить например за быстрый net tcp. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 11:59 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
skyANA Клиента, или вызов этих пары методов у готового клиента? :) Возможно я к вечеру туплю, но зачем писать или генерировать какие-то вызовы для готового клиента, если он уже готовый? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 18:02 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
fkthat skyANA Клиента, или вызов этих пары методов у готового клиента? :) Возможно я к вечеру туплю, но зачем писать или генерировать какие-то вызовы для готового клиента, если он уже готовый? Я не понял к чему ты написал "может быть, проще и руками написать". Проще, чем что? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 18:31 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
skyANA Проще, чем что? Чем настраивать конфигурацию кодогенерилки. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 20:08 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
fkthat, А чё там её настраивать? OpenAPI это как бы есть конфиг, изначально на языке YAML, что как бы намекает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 23:28 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
fkthat, Некоторые идут дальше, пишут сначала спеку на OpenAPI, чтобы нагенерить как клиента, так и начальный код сервера :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2020, 23:30 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
hVostt fkthat, А чё там её настраивать? OpenAPI это как бы есть конфиг, изначально на языке YAML, что как бы намекает :) Да это все понятно. На нашем проекте у меня вообще все в процесс билда встроено (NSwag) еще и дополнительным параметром "-p:blablabla" можно заставить его свежую копию OpenAPI Doc с сервера перед этим вытянуть. Но это наш собственный API, где под сотню методов, который нужен нам целиком, и который периодически обновляется. Если же мне просто нужен какой-то один метод со стороннего сервиса, да и из него всего пару полей, то зачем мне все это шапито разворачивать, это как на самосвале за булкой хлеба в магазин поехать, быстрее руками какой-нибудь GET написать и забыть. Да и какой там YAML, кстати? Там же JSON. Или ты о чем-то другом? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 02:38 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
hVostt Некоторые идут дальше, пишут сначала спеку на OpenAPI Это как-то вообще бесчеловечно. Разве что, если какими-нибудь тулзами её рисовать. До сих пор с содроганием вспоминаю свой небольшой опыт разработки FE под ExtJS, в которой кода считай что вообще нет, потому что почти все приложение это куча каких-то километровых абсолютно наркоманских конфигов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 02:45 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
fkthat Да это все понятно. На нашем проекте у меня вообще все в процесс билда встроено (NSwag) Немного оффтопа, но мы от NSwag даже не просто ушли, а убежали со всех ног, ибо косяк на косяке, полный игнор в коммьюнити, не решаемые годами проблемы. fkthat Если же мне просто нужен какой-то один метод со стороннего сервиса, да и из него всего пару полей, то зачем мне все это шапито разворачивать, это как на самосвале за булкой хлеба в магазин поехать, быстрее руками какой-нибудь GET написать и забыть. Я всё же предпочту сгенить клиента и пользовать столько методов, сколько мне надо, так как человеческий фактор никто не отменял и человеческое право на ошибку. Автоматизация даже с диким оверхедом призвана как раз нивелировать подобные проблемы. fkthat Да и какой там YAML, кстати? Там же JSON. Или ты о чем-то другом? Ну изначально Swagger на YAML-е основан, JSON-YAML обратно конвертируемы. Далее объясню зачем это всё. fkthat Это как-то вообще бесчеловечно. Разве что, если какими-нибудь тулзами её рисовать. До сих пор с содроганием вспоминаю свой небольшой опыт разработки FE под ExtJS, в которой кода считай что вообще нет, потому что почти все приложение это куча каких-то километровых абсолютно наркоманских конфигов. Ну вот как раз YAML затем, чтобы писать спеку ручками. Просто ты мыслишь исключительно из опыта 100% бекенд based API. Типа сначала пишем код сервиса, ток потом уже генерируем API спецификацию. А все остальные в то время курят бамбук, ждут когда же ты там разродишься своими спеками, ага :) Если хотя бы на часок ты примеришь на себя роль постановщика, который должен спеку разрабатывать, прорабатывать и согласовывать, ты поймёшь, что писать в формате OpenAPI -- наверное лучшее, что на сегодняшний момент есть. При чём это универсально подойдёт для разных платформ, команд. Минимальными усилиями. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 03:28 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
hVostt Немного оффтопа, но мы от NSwag даже не просто ушли, а убежали со всех ног, ибо косяк на косяке, полный игнор в коммьюнити, не решаемые годами проблемы. Да ладно там. Swashbuckle: 3.5k stars, 863 forks, used by 5000+, 126 contributors NSwag: 3.9k stars, 766 forks, used by 1330, 170 contributors NSwag просто помоложе и он не просто OpenAPI, а еще и куча тулзов для той же кодогенерации в комплекте - из-за этого и был в свое время выбран. hVostt Просто ты мыслишь исключительно из опыта 100% бекенд based API. Типа сначала пишем код сервиса, ток потом уже генерируем API спецификацию. А все остальные в то время курят бамбук, ждут когда же ты там разродишься своими спеками, ага :) Для меня, как для разработчика, код контроллера это такая же спека, как все то же самое описанное на yaml/json. История показывает, что все эти подходы "понарисуем квадратиков со стрелочками, а чудо-инструмент нам сам по ним код сгенерирует" это полный фейл. Лет десять назад резюме разработчика без упоминания UML это было вообще не резюме. Ну и где сейчас этот UML - впиши его в резюме и тебя засмеют :)) Единственное применение кодогенерации сервера что я сразу так вижу, это когда тебе надо реализовать какой-то чужой API точно в соответствие с чужой спецификацией (например web-hooks для стороннего сервиса) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 08:54 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
и всё же В большой сервисной или микросервисной архитектуре, когда есть куча независимых команд, разрабатывающая кучу независимых сервисов, именно спецификация API будет точкой отсчета и будет разрабатываться раньше кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 09:51 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
Shocker.Pro и всё же В большой сервисной или микросервисной архитектуре, когда есть куча независимых команд, разрабатывающая кучу независимых сервисов, именно спецификация API будет точкой отсчета и будет разрабатываться раньше кода. Так необязательно сразу реализовывать. Напиши типы данных, которые actions принимают/отдают, пропиши роуты, и поставь везде всеми любимый Код: c# 1.
Я выше писал - интерфейс контроллеров и акций это ровно такая же спецификация API как и OpenAPI Doc, просто в другом формате, причем генерировать одно из другого можно и в ту и в другую сторону. Тут, наверное, просто вопрос, с чем команде удобней работать - описывать API на C# или на YAML/JSON. Точно так же как в древние времена COM - ты мог сначала написать кодом интерфейсы, а потом из них сгенерировать IDL/TypeLib, а мог наоборот - написать сначала IDL, а из него сгенерировать интерфейсы - и то и другое абсолютно равнозначно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 14:59 |
|
Web API. Как открыть интерфейсы?
|
|||
---|---|---|---|
#18+
fkthat Тут, наверное, просто вопрос, с чем команде удобней работать - описывать API на C# или на YAML/JSON. Или на XML. Доводилось мне сталкиваться с требованием, что перед созданием сервиса (WCF) сначала пишется его WSDL. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 17:07 |
|
|
Start [/forum/topic.php?fid=19&msg=40014181&tid=1396648]: |
0ms |
get settings: |
16ms |
get forum list: |
16ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
1ms |
get page messages: |
517ms |
get tp. blocked users: |
1ms |
others: | 300ms |
total: | 909ms |
0 / 0 |