Category : golang

golang
Нативные подписки с роутером Cosmo

Федеративный GraphQL бесценен для предприятий, потому что он создает единый, логический уровень API - федеративный граф, - который соединяет разрозненные источники данных, служа единым представлением о ландшафте данных организации.Сервисы могут обеспечивать взаимодействие, но при этом оставаться независимыми и использовать технологии, с которыми они знакомы, благодаря общей и стандартизированной схеме GraphQL, и новые функции/сервисы могут быть легко интегрированы в этот объединенный граф без …

  • среда, 10 апреля 2024 г. в 00:00:08
golang
Введение в Router Cosmo — потрясающе быстрый шлюз с открытым исходным кодом Federation V1/V2

Предприятия имеют разнообразные зависимости от данных — внутренние микросервисы со специализированными доменами данных, устаревшие системы с собственными форматами данных, а также сторонние API и приложения SaaS со своими уникальными моделями данных и конечными точками.TL;DR: разные (и часто устаревшие) технологии, которые нужно как-то объединить.Federated GraphQL выделился как главное решение для такого объединения в сфере предприятий, и Router (или Gateway) в Federation действует как ключево…

  • вторник, 9 апреля 2024 г. в 00:00:08
golang
Пространство имен для GraphQL: Бесконфликтное объединение любого количества API

Пространство имен - это важный концепт в программировании, позволяющий группировать элементы и предотвращать конфликты имен. В этом посте мы покажем, как мы применяем этот концепт к API, чтобы облегчить композицию и интеграцию различных сервисов.Мы покажем вам, как интегрировать 8 сервисов: SpaceX GraphQL, 4x GraphQL с использованием Apollo Federation, REST API с использованием OpenAPI Specification, API на основе PostgreSQL и API на основе Planetscale-Vitess (MySQL) всего несколькими строками…

  • понедельник, 8 апреля 2024 г. в 00:00:08
golang
Dataloader 3.0: Новый алгоритм для решения проблемы N+1

При реализации Cosmo Router, open-source замена Apollo Router, мы столкнулись с проблемой поддержания нашего кода для решения проблемы N+1. Реализация маршрутизатора для федеративных служб GraphQL в значительной степени зависит от возможности группировать вложенные запросы GraphQL для сокращения числа запросов к подграфам.Чтобы решить эту проблему, мы разработали новый алгоритм, который решает проблему N+1 более эффективно и проще для поддержания, чем наше предыдущее решение, которое было осно…

  • воскресенье, 7 апреля 2024 г. в 00:00:07
golang
Дайджест полезных материалов из мира Golang за неделю

Подборка полезных материалов и находок из мира Go за неделю.Проекты недели.▪ Beego —  новая версия высокопроизводительного Go фреймворка для разработки RESTful API, веб-приложений и бэкенд-сервисов, вдохновленный Tornado, Sinatra и Flask. ▪LLocalSearch —  полностью локально работающий поисковый агрегатор с использованием агентов LLM.▪ Freeze — полезный Go инструмент для генерации изображений кода и вывода терминала.▪Go-cfg — Простой и удобный способ инициализировать конфигурацию в структуры, с…

  • воскресенье, 7 апреля 2024 г. в 00:00:06
golang
Разбираемся в новом роутинге в Go 1.22

В начале февраля 2024 года вышел Go 1.22. Вот, что нового и интересного принёс новый релиз: сделали более безопасное поведение переменных в циклах, добавили функции-итераторы в качестве rangefunc-эксперимента и улучшили шаблоны роутинга. В этой статье я сфокусируюсь на последнем, самом долгожданном, для многих, обновлении — шаблонах http-роутинга. Роутинг в Go — общая проблема, для решения которой уже построили кучу фреймворков, в этом GitHub-репозитории собраны лучшие. Google сама признаётся…

  • суббота, 6 апреля 2024 г. в 00:00:16
golang
Создание серверного Live Chat приложения с использованием Next.js, Fauna и WunderGraph для GraphQL …

Пошаговое руководство по созданию масштабируемого, чат-приложения реального времени с использованием серверных технологий... с небольшой помощью от NextAuth.js для входа через GitHub. Кому нужны WebSockets, когда у вас есть Live Queries? Не нам!Если вы создаете приложения, которые работают с данными в реальном времени, вы, вероятно, используете WebSockets. Они позволяют веб-браузеру и веб-серверу общаться в реальном времени, поддерживая постоянное соединение между ними - данные отправляются кл…

  • суббота, 6 апреля 2024 г. в 00:00:15
golang
Beego в Golang для начинающих

Привет, Хабр!Beego – это фреймворк для разработки веб-приложений на языке Go, ориентированный на быстрое развертывание и простоту использования. В его основе лежит идея создания полнофункциональных приложений с минимум усилиям на настройку и кодирование. Это достигается за счет широкого выбора инструментов, включая ORM, систему маршрутизации, интерфейс кмд и многое другое. Beego придерживается принципов RESTful и MVC.Установим и создадим первый проектУстановить Beego проще пареной репы:go get …

  • суббота, 6 апреля 2024 г. в 00:00:14
golang
Масштабирование подписок GraphQL в Go с использованием Epoll и архитектуры, основанной на событиях

«Сделай работающим, сделай правильным, сделай быстрым». Это мантра, которую вы, вероятно, слышали раньше. Это хорошая мантра, которая помогает вам сосредоточиться на том, чтобы не переусложнять решение. Я пришел к выводу, что обычно достаточно сделать это правильно, обычно это достаточно быстро, если сделать это правильно.Когда мы начали реализацию подписок GraphQL в Cosmo Router, мы сосредоточились на том, чтобы сделать это работающим. Это было несколько месяцев назад. Это было достаточно хор…

  • вторник, 2 апреля 2024 г. в 00:00:10