Создан отлаживаемый GUI-клиент gRPC.

Go gRPC
Создан отлаживаемый GUI-клиент gRPC.

предисловие

Обычно все пишутgRPCКак тестируется интерфейс? Обычно используются следующие методы:

  1. Напишите один тестовый код и смоделируйте клиентский тест самостоятельно.

  1. Вы можете взятьgRPC-Gatewayобслуживание, чтобы вы моглиpostmanв симуляции.

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

Второй метод аналогичен запросу HTTP-интерфейса в postman и выглядит очень интуитивно понятным;gRPC-GatewayService, и в то же время при изменении определения интерфейса его приходится переиздавать, что немного сложнее в использовании.

Итак, я нашел два вида инструментов, которые все еще хорошо выглядят:

Первый взглядBloomRPCСтраница красивая и функция идеальная, но есть очень неудобное место, то есть не поддерживаетint64Запрос данных, будут проблемы с точностью.

Здесь я написал простой интерфейс, который напрямую конвертирует запрошенныеint64Вернуться обратно.

func (o *Order) Create(ctx context.Context, in *v1.OrderApiCreate) (*v1.Order, error) {
	fmt.Println(in.OrderId)
	return &v1.Order{
		OrderId: in.OrderId,
		Reason:  nil,
	}, nil
}

Будет обнаружено, что точность данных, полученных сервером, была потеряна.

Это часто используется в нашейint64В бизнесе очень неудобно, да и большинство интерфейсов неработоспособны.


grpcuiя используюBloomRPCПо прошествии некоторого времени только для того, чтобы найти инструменты, более совершенные функции;BloomRPCПроблема точности в .

А потому, что я к этому привык.BloomRPCЯ пошел отлаживать интерфейс, и в процессе ежедневной разработки мой браузер чуть не открыл десятки тап-страниц, что привело к обнаружениюgrpcuiНе так удобно.

Поэтому я задавался вопросом, может ли быть что-то вродеBloomRPCАвтономное приложение также поддерживаетint64Инструмент.


Подготовить

Я нашел круг и, кажется, не нашел его. Я писал некоторое время назадgRPCФактически, основная функция, которая нуждается в приложении, то есть вызов обобщения был реализован.

Поскольку основная компетенция достигается с помощью Go, поэтому это приложение лучше всего писать на Go, поэтому повторное использование кода более удобно; просто хочу посмотреть, как реализовать графический интерфейс с эффектом приложения Go.

Но, к сожалению, Go не поддерживает родную библиотеку графического интерфейса и, наконец, нашел библиотеку:fyne

отstarОна часто используется, а также поддерживает кроссплатформенную упаковку, поэтому я, наконец, решил использовать эту библиотеку для создания этого приложения.

основная функция

Приложение всего процесса взаимодействия я ссылаюсь наBloomRPC, но в качестве спина разработчика, который не понимает эстетики и дизайн, самая сложная часть всего процесса - это макет.

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

Так что потребовались еще выходные, чтобы окончательная версия выглядела так (на первый взгляд, это не имеет значения):

Хотя страница сBloomRPCОпределенный зазор все же есть, но на использование не влияет, ключint64Проблема решена, вы снова можете с удовольствием писать код.

Установить

Друзья, которые имеют подобные потребности и хотят испытать, могут загружать и использовать их здесь:GitHub.com/crossover J я…

Так как у меня нетWindowsКомпьютер, поэтому нет пакетной exe-программы, друзья, у которых есть соответствующие потребности, могут скачать исходный код и скомпилировать его самостоятельно:

git clone git@github.com:crossoverJie/ptg.git
cd ptg
make pkg-win

план дальнейших действий

Функция текущей версии по-прежнему относительно проста и поддерживает только часто используемыеunaryЗвоните, последующие действия будут постепенно добавлятьсяstream,metadata, Хранение и восстановление рабочего пространства и др.

Предложения по страницам и взаимодействию также приветствуются.

изначально планировалось загрузитьbrewЕго легко установить, но он был отклонен после того, как его бросили на ночь, потому что данных было недостаточно, поэтому, если вы полезны или заинтересованы, пожалуйста, помогите обратить внимание (как это похоже на прямую трансляцию 🐶)

Адрес источника:GitHub.com/crossover J я…