169 похожих чатов

Привет, чатик. Какую либу взять ktor или spring-boot для api

тестирования продукта со swagger докой. Ни первую ни вторую либу не знаю, пришел из typescript. Какие "фатальные недостатки" для тестирования api у каждой?

15 ответов

22 просмотра

Любую. Ктор проще. У спринга больше интеграций

Если тестируешь контракт API, я бы посоветовал Pact

Если там просто веб + база то проще ктор спринг - это большой мир с кучей своих подводных камней, но с поддержкой всего, что душа пожелает "изкоробки" Из фатальных недостатков ktor vs spring - рецептов/гайдов/доков/ответов на вопросы по спрингу полный интернет, ktor таким пока не богат

Если сваггер есть, то спринг умеет с ним дружить с помощью некоторых библиотек

Rustam-is not a function Автор вопроса

Продукт с микросеросервисами и множеством внешних зависимостей поэтому нужно будет много мокать в этом случае наверно лучше spring? И как вариант openapi-generator https://github.com/OpenAPITools/openapi-generator предлагает сгенерить retrofit проект, но там описание роутов надо делать в интерфейсе, чуть смутил этот момент.

Rustam-is not a function Автор вопроса
Roman Khlebnov
Если тестируешь контракт API, я бы посоветовал Pac...

мне наверно больше надо проект начальный сгенерить, чтобы долго не разбираться как работает либа и чтобы было проще в процессе допиливания. До этого краем глаза видел rest-assured надо было авторизоватся и типизировать некоторые респонсы.

Rustam is not a function
мне наверно больше надо проект начальный сгенерить...

Спринг конечно же берите для таких целей, гайд наверняка по первому гуглу найдется под задачу

Rustam is not a function
мне наверно больше надо проект начальный сгенерить...

Опять же, для таких случаев Pact предоставляет хороший список ситуации для чего он подходит и не подходит: https://docs.pact.io/getting_started/what_is_pact_good_for Из первоначальной задачи - протестировать API - в моём понимании это contract testing (учитывая что есть Swagger спека). В противном случае - картинка с Эскобаром тут была в тему, нет большой разницы что брать - главное смочь адекватно настроить генератор с выбранной системой билда, будь то Gradle или Maven

Roman Khlebnov
Опять же, для таких случаев Pact предоставляет хор...

ну если нужен прям тру Е2Е пакт тут не поможет)

Rustam-is not a function Автор вопроса
Sergey Barmin
Спринг конечно же берите для таких целей, гайд нав...

Пока нашлись гайды только под тестированию приложения написанного на spring-boot. А все остальное похоже сложнее надо передавать в каждый метод url? и отдельно по джавовски типизацию респонса Fruits.class https://spring.io/guides/gs/testing-web/ @Test public void greetingShouldReturnDefaultMessage() throws Exception { assertThat(this.restTemplate.getForObject("http://localhost:" + port + "/", Fruits.class)).contains("Hello, World"); Смотрю на retrofit там как то проще все выглядит и генератор сгенерил контроллеры для автоизации. ktor похож на него.

Rustam is not a function
Пока нашлись гайды только под тестированию приложе...

ретрофит - это вроде же клиент, а не сервер. Вам что нужно-то?

Alexander Nozik
ретрофит - это вроде же клиент, а не сервер. Вам ч...

Клиент, которым можно протестировать написанный сервер, очевидно.

Andrew Mikhaylov
Клиент, которым можно протестировать написанный се...

Я просто не понял, чего там спринг рядом с ним делает. У спринга тоже своей клиент есть?

Alexander Nozik
Я просто не понял, чего там спринг рядом с ним дел...

Канеш, как бы ещё с его помощью микросервисы делали.

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта