1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-go-restful

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

go-restful

Пакет для создания веб-сервисов в стиле REST с использованием Google Go.

Особенности:

  • Поддержка маршрутов для сопоставления запросов и функций с параметрами пути (например, {id}, а также prefix_{var} и {var}_suffix).
  • Настраиваемый маршрутизатор:
    • Быстрый алгоритм маршрутизации, который позволяет использовать статические элементы, пользовательские методы Google, регулярные выражения и динамические параметры в пути URL (например, /resource/name:customVerb, /meetings/{id} или /static/{subpath:*}).
  • API запроса для чтения структур из JSON/XML и доступа к параметрам (путь, запрос, заголовок).
  • API ответа для записи структур в JSON/XML и установки заголовков.
  • Возможность настройки кодирования с помощью регистрации EntityReaderWriter.
  • Фильтры для перехвата потока запросов и ответов на уровне сервиса или маршрута.
  • Переменные, доступные только для запроса, с использованием атрибутов.
  • Контейнеры для веб-служб на разных конечных точках HTTP.
  • Кодирование содержимого (gzip, deflate) полезных нагрузок запросов и ответов.
  • Автоматические ответы на OPTIONS (с использованием фильтра).
  • Автоматическая обработка запросов CORS (с использованием фильтра).
  • Объявление API для Swagger UI (go-restful-openapi).
  • Восстановление после паники для создания HTTP 500, настраиваемое с помощью RecoverHandler(...).
  • Ошибки маршрута создают ошибки HTTP 404/405/406/415, настраиваемые с помощью ServiceErrorHandler(...).
  • Настраиваемое (трассировочное) ведение журнала.
  • Настраиваемые читатели и писатели gzip/deflate с использованием регистрации CompressorProvider.
  • Внедрение собственного http.Handler с помощью функции HttpMiddlewareHandlerToFilter.

Использование

Без модулей Go

Все версии до v2.. (в master) не поддерживают модули Go.

import (
    restful "github.com/emicklei/go-restful"
)

С модулями Go

Начиная с версии v3.0.0 (в ветке v3), этот пакет поддерживает модули Go.

import (
    restful "github.com/emicklei/go-restful/v3"
)

Пример

ws := new(restful.WebService)
ws.
Path("/users").
Consumes(restful.MIME_XML, restful.MIME_JSON).
Produces(restful.MIME_JSON, restful.MIME_XML)

ws.Route(ws.GET("/{user-id}").To(u.findUser).
Doc("get a user").
Param(ws.PathParameter("user-id", "identifier of the user").DataType("string")).
Writes(User{}))     
...

func (u UserResource) findUser(request *restful.Request, response *restful.Response) {
    id := request.PathParameter("user-id")
    ...
}

Полный API ресурса пользователя

Ссылки

  • Go Report Card — отчёт о качестве кода.
  • GoDoc — документация.
  • codecov — покрытие кода тестами.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Пакет для создания веб-сервисов в стиле REST с использованием Google Go. Развернуть Свернуть
Go и 3 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-go-restful.git
git@api.gitlife.ru:oschina-mirror/mirrors-go-restful.git
oschina-mirror
mirrors-go-restful
mirrors-go-restful
v3