Определение разрешённых записей Settings
С помощью модуля Schema Settings можно получить настройки сайта (хранящиеся в таблице wp_options), запрашивая поля optionValue, optionValues и optionObjectValue.
Эти поля имеют разные сигнатуры:
optionValue: AnyBuiltInScalaroptionValues: [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 местах, в порядке приоритета:
- Пользовательская: в соответствующей Schema Configuration
- Общая: на странице Settings
В Schema Configuration, применённой к endpoint, выберите опцию "Use custom configuration" и введите нужные записи:

В противном случае будут использоваться записи, указанные на вкладке «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"