Библиотека для работы с Kodik API на языке Go. Данная библиотека позволяет выполнять запросы к API с использованием структурированных параметров для различных эндпоинтов, таких как /search
, /list
, /translations/v2
, /qualities/v2
, /countries
, /genres
и /years
.
├── api
│ ├── search.go # Функции для работы с эндпоинтами (/search, /list, /translations/v2, /qualities/v2, /countries, /genres, /years)
├── client
│ └── client.go # HTTP-клиент, инициализация и функция выполнения запросов
├── errors
│ └── errors.go # Пользовательские ошибки библиотеки
├── models
│ ├── search.go # Модели для ответов API (/search)
│ ├── search_params.go # Структура параметров запроса для /search
│ ├── ...
-
Клонирование репозитория:
git clone https://github.com/hikasami/kodik-api cd kodik-api
-
Сборка проекта:
Для сборки выполните в терминале:
go build
Перед использованием функций API необходимо инициализировать клиента с вашим API токеном. Для этого используйте функцию client.Init
.
package main
import (
"github.com/hikasami/kodik-api/client"
)
func main() {
// Инициализация клиента с указанием токена и использованием HTTPS
client.Init("YOUR_API_TOKEN_HERE", true)
// Теперь можно использовать различные методы API
}
Ниже приведён пример использования запроса /search
с использованием структуры параметров SearchParams
. Токен задается глобально при инициализации клиента.
package main
import (
"fmt"
"log"
"github.com/hikasami/kodik-api/api"
"github.com/hikasami/kodik-api/client"
"github.com/hikasami/kodik-api/models"
)
func main() {
// Инициализация клиента API
client.Init("YOUR_API_TOKEN_HERE", true)
// Заполнение параметров запроса /search
searchParams := &models.SearchParams{
Title: "Inception",
Strict: false,
FullMatch: false,
Limit: 5,
// Дополнительные параметры можно устанавливать по необходимости
}
// Выполнение запроса /search к API Kodik
searchResponse, err := api.Search(searchParams)
if err != nil {
log.Fatalf("Ошибка при выполнении запроса /search: %v", err)
}
// Вывод результатов запроса
fmt.Printf("Найдено материалов: %d\n", len(searchResponse.Results))
}
Библиотека поддерживает следующие эндпоинты:
/list
: Получение списка материалов с заданными параметрами./translations/v2
: Получение данных по озвучкам./qualities/v2
: Получение информации по качествам видео./countries
: Получение списка стран с количеством материалов./genres
: Получение списка жанров с количеством материалов./years
: Получение списка годов с количеством материалов.
Каждый эндпоинт имеет отдельные структуры параметров и моделей ответа.
Все ошибки, возникающие при выполнении запросов, возвращаются функциями API в виде стандартного объекта error
. Пользовательские ошибки, например, ErrUnexpectedStatus
или ErrUnsupportedMethod
, определены в пакете errors
.