предисловие
Обычно все пишутgRPC
Как тестируется интерфейс? Обычно используются следующие методы:
- Напишите один тестовый код и смоделируйте клиентский тест самостоятельно.
- Вы можете взять
gRPC-Gateway
обслуживание, чтобы вы моглиpostman
в симуляции.
Но ни один из этих двух методов не является особенно элегантным; первый метод не очень интуитивно понятен для поддержки в коде, когда вложенность структуры запроса особенно сложна; и код будет особенно длинным.
Второй метод аналогичен запросу HTTP-интерфейса в postman и выглядит очень интуитивно понятным;gRPC-Gateway
Service, и в то же время при изменении определения интерфейса его приходится переиздавать, что немного сложнее в использовании.
Итак, я нашел два вида инструментов, которые все еще хорошо выглядят:
Первый взгляд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 я…