Настройка плагина
Настройка плагинаОпределение разрешённых записей Settings

Определение разрешённых записей Settings

С помощью модуля Schema Settings можно получить настройки сайта (хранящиеся в таблице wp_options), запрашивая поля optionValue, optionValues и optionObjectValue.

Эти поля имеют разные сигнатуры:

  • optionValue: AnyBuiltInScalar
  • optionValues: [AnyBuiltInScalar]
  • optionObjectValue: JSONObject

Например, следующий запрос возвращает URL сайта:

{
  homeURL: optionValue(name: "home")
}

В целях безопасности перечень доступных для запроса опций должен быть явно настроен.

Ответ Settings

При выполнении любого поля «optionValue», если доступ к указанному имени опции не разрешён в Settings, запрос возвращает ошибку.

Например, при выполнении такого запроса:

{
  optionValue(name: "nonExistentOption")
}

Возвращается:

{
  "errors": [
    {
      "message": "There is no option with name 'nonExistentOption'",
      "extensions": {
        "type": "Root",
        "id": "root",
        "field": "optionValue(name:\"nonExistentOption\")"
      }
    }
  ],
  "data": {
    "option": null
  }
}

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

Настройка разрешённых опций

Необходимо настроить список имён опций, доступных для запроса.

Каждая запись может быть:

  • Регулярным выражением (regex), если оно заключено в / или #, либо
  • Полным именем опции во всех остальных случаях

Например, любая из следующих записей соответствует мета-ключу "siteurl":

  • siteurl
  • /site.*/
  • #site([a-zA-Z]*)#

Настройку можно задать в 2 местах, в порядке приоритета:

  1. Пользовательская: в соответствующей Schema Configuration
  2. Общая: на странице Settings

В Schema Configuration, применённой к endpoint, выберите опцию "Use custom configuration" и введите нужные записи:

Определение записей для Schema Configuration

В противном случае будут использоваться записи, указанные на вкладке «Settings» в разделе Settings:

Определение записей в Settings
Определение записей в Settings

Доступны 2 режима: «Allow access» и «Deny access»:

  • Allow access: доступны только настроенные записи, все остальные — недоступны
  • Deny access: настроенные записи недоступны, все остальные — доступны
Определение режима доступа
Определение режима доступа

Опции по умолчанию

После установки плагина следующие опции заранее определены как доступные:

  • "siteurl"
  • "home"
  • "blogname"
  • "blogdescription"
  • "WPLANG"
  • "posts_per_page"
  • "date_format"
  • "time_format"
  • "blog_charset"