API

ETSO предоставляет публичный API для получения метаданных произведений каталога из других проектов. API предназначен для повторного использования идентификаторов, названий, атрибуций, ссылок и стилометрического результата каждого произведения.

Данные возвращаются в формате JSON и могут использоваться для интеграции данных ETSO в каталоги, визуализации, поисковые системы или исследовательские инструменты.

Эндпоинты

GET /api/obras

Возвращает полный каталог произведений с публичными метаданными.

GET /api/obras/{id-o-slug}

Возвращает одно произведение по его идентификатору или публичному slug.

Основные поля

ПолеОписание
idСтабильный идентификатор произведения.
slugЧитаемый идентификатор, используемый в публичных URL.
titleНазвание в базе данных, включая конечный артикль, если он есть.
displayTitleНазвание, преобразованное тем же способом, что и на сайте ETSO.
titleVariantsДругие названия произведения в базе данных.
displayTitleVariantsДругие названия, преобразованные тем же способом, что и на сайте.
genreЖанр произведения.
originПроисхождение или источник текста, используемого ETSO.
textStateСостояние текста в каталоге.
addedOnДата добавления в каталог, если указана.
resultado1Стилометрический результат произведения в виде фразы.
flagsЛогические индикаторы отчета, резюме, проверки авторства и доступа к тексту.
traditionalAttributionTextТрадиционная атрибуция, готовая для отображения.
traditionalAttributionPhraseФраза традиционной атрибуции с текстом, Markdown, HTML и ссылочными частями.
stylometryAttributionTextСтилометрическая атрибуция, готовая для отображения.
traditionalAttributionНормализованная традиционная атрибуция.
stylometryAttributionНормализованная стилометрическая атрибуция.
resourcesСвязанные публичные ссылки внутри ETSO.

Рекомендуемое использование

Ответы отдаются с публичным кэшем: public, max-age=3600, s-maxage=86400, stale-while-revalidate=604800. Для внешних интеграций рекомендуется кэшировать ответ локально и не вызывать API при каждом рендеринге.

Пример

Запрос конкретного произведения и полный ответ:

https://etso.es/api/obras/la-francesa-laura
{
  "meta": {
    "contentPolicy": {
      "includesFullText": false,
      "includesSummaries": false,
      "excludedFields": [
        "fullText",
        "text",
        "shortSummary",
        "summaryText",
        "resumen_breve",
        "resumen_largo"
      ]
    }
  },
  "work": {
    "id": "DESCONOCIDO_FrancesaLaura",
    "slug": "la-francesa-laura",
    "title": "Francesa Laura, La",
    "displayTitle": "La francesa Laura",
    "titleVariants": [],
    "displayTitleVariants": [],
    "genre": "Comedia",
    "origin": "El texto procede de la edición de Cuéllar y Vega.",
    "textState": "Bueno",
    "addedOn": "2021/03",
    "resultado1": "Los analisis de estilometria permiten asociar esta obra de forma clara con el perfil autorial de Lope de Vega Carpio.",
    "flags": {
      "inAuthorshipExam": true,
      "hasSummary": true,
      "hasReport": true,
      "hasTextAccess": true
    },
    "traditionalAttributionText": "Неизвестный автор",
    "traditionalAttributionPhrase": {
      "text": "Произведение с неизвестной атрибуцией.",
      "markdown": "Произведение с [неизвестной атрибуцией](https://etso.es/autores/desconocido).",
      "html": "Произведение с <a href=\"/autores/desconocido\">неизвестной атрибуцией</a>.",
      "parts": [
        {
          "kind": "text",
          "value": "Произведение с "
        },
        {
          "kind": "author",
          "value": "неизвестной атрибуцией",
          "authorId": "desconocido",
          "href": "/autores/desconocido",
          "url": "https://etso.es/autores/desconocido"
        },
        {
          "kind": "text",
          "value": "."
        }
      ]
    },
    "stylometryAttributionText": "Lope de Vega Carpio [Безопасный]",
    "traditionalAttribution": {
      "groups": [
        {
          "members": [
            {
              "authorId": "desconocido",
              "authorName": "Неизвестный автор"
            }
          ]
        }
      ],
      "connector": "and",
      "rawExpression": "desconocido"
    },
    "stylometryAttribution": {
      "groups": [
        {
          "members": [
            {
              "authorId": "vega_carpio_lope_de",
              "authorName": "Lope de Vega Carpio",
              "confidence": "segura"
            }
          ]
        }
      ],
      "connector": "and",
      "rawExpression": "vega_carpio_lope_de[segura]"
    },
    "resources": {
      "work": "/obras/la-francesa-laura",
      "summary": "/obras/la-francesa-laura/resumen",
      "report": "/informes/analisis-estilometrico-la-francesa-laura",
      "textAccess": [
        {
          "label": "Текст BITESO",
          "href": "/biteso/francesa-laura-la",
          "kind": "biteso"
        }
      ]
    }
  }
}