添加 RESTBase 配置文件
commit
746419feff
@ -0,0 +1,142 @@
|
|||||||
|
services:
|
||||||
|
- name: restbase
|
||||||
|
module: hyperswitch
|
||||||
|
conf:
|
||||||
|
port: 7231
|
||||||
|
salt: secret
|
||||||
|
default_page_size: 125
|
||||||
|
user_agent: RESTBase
|
||||||
|
ui_name: RESTBase
|
||||||
|
ui_url: https://www.mediawiki.org/wiki/RESTBase
|
||||||
|
ui_title: RESTBase docs
|
||||||
|
spec:
|
||||||
|
x-request-filters:
|
||||||
|
- path: lib/security_response_header_filter.js
|
||||||
|
x-sub-request-filters:
|
||||||
|
- type: default
|
||||||
|
name: http
|
||||||
|
options:
|
||||||
|
allow:
|
||||||
|
- pattern: http://localhost/api.php
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: http://localhost:7231
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: http://localhost:8888
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: http://www.isekai.cn
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: http://en.1meji.com
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: http://zh.1meji.com
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: https://www.isekai.cn
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: https://en.1meji.com
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: https://zh.1meji.com
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: http://localhost:10044
|
||||||
|
forward_headers: true
|
||||||
|
- pattern: /^https?:\/\//
|
||||||
|
paths:
|
||||||
|
/{domain:localhost}: &arbitary_domain_zh
|
||||||
|
x-modules:
|
||||||
|
- path: projects/isekai.yaml
|
||||||
|
options:
|
||||||
|
proxy:
|
||||||
|
backend_host_template: '{{"/{domain}/sys/legacy"}}'
|
||||||
|
block_external_reqs: true
|
||||||
|
action:
|
||||||
|
# XXX Check API URL!
|
||||||
|
apiUriTemplate: http://www.isekai.cn/api.php
|
||||||
|
# XXX Check the base RESTBase URI
|
||||||
|
baseUriTemplate: http://www.isekai.cn/api/rest_v1
|
||||||
|
parsoid:
|
||||||
|
# XXX Check Parsoid URL!
|
||||||
|
host: http://www.isekai.cn/rest.php
|
||||||
|
response_cache_control: 's-maxage=0, max-age=86400'
|
||||||
|
grace_ttl: 1000000
|
||||||
|
mathoid:
|
||||||
|
# XXX Check Mathoid URL!
|
||||||
|
host: http://localhost:10044
|
||||||
|
mobileapps:
|
||||||
|
host: http://localhost:8888
|
||||||
|
cxserver:
|
||||||
|
host: http://localhost:8297
|
||||||
|
table:
|
||||||
|
type: restbase-mysql
|
||||||
|
host: localhost
|
||||||
|
database: restbase
|
||||||
|
keyspace: system
|
||||||
|
username: root
|
||||||
|
password: root
|
||||||
|
pool_idle_timeout: 20000
|
||||||
|
retry_delay: 250
|
||||||
|
retry_limit: 10
|
||||||
|
show_sql: false
|
||||||
|
storage_groups:
|
||||||
|
- name: zh.1meji.com
|
||||||
|
domains: /./
|
||||||
|
purged_cache_control: test_purged_cache_control
|
||||||
|
# Cache control for purged endpoints allowing short-term client caching
|
||||||
|
purged_cache_control_client_cache: test_purged_cache_control_with_client_caching
|
||||||
|
/{domain:www.isekai.cn}: *arbitary_domain_zh
|
||||||
|
/{domain:zh.1meji.com}: *arbitary_domain_zh
|
||||||
|
|
||||||
|
/{domain:en.1meji.com}: &arbitary_domain_en
|
||||||
|
x-modules:
|
||||||
|
- path: projects/isekai.yaml
|
||||||
|
options:
|
||||||
|
proxy:
|
||||||
|
backend_host_template: '{{"/{domain}/sys/legacy"}}'
|
||||||
|
block_external_reqs: true
|
||||||
|
action:
|
||||||
|
# XXX Check API URL!
|
||||||
|
apiUriTemplate: http://en.1meji.com/api.php
|
||||||
|
# XXX Check the base RESTBase URI
|
||||||
|
baseUriTemplate: http://en.1meji.com/api/rest_v1
|
||||||
|
parsoid:
|
||||||
|
# XXX Check Parsoid URL!
|
||||||
|
host: http://en.1meji.com/rest.php
|
||||||
|
response_cache_control: 's-maxage=0, max-age=86400'
|
||||||
|
grace_ttl: 1000000
|
||||||
|
mathoid:
|
||||||
|
# XXX Check Mathoid URL!
|
||||||
|
host: http://localhost:10044
|
||||||
|
mobileapps:
|
||||||
|
host: http://localhost:8888
|
||||||
|
cxserver:
|
||||||
|
host: http://10.0.0.17:8297
|
||||||
|
table:
|
||||||
|
type: restbase-mysql
|
||||||
|
host: localhost
|
||||||
|
database: restbase
|
||||||
|
keyspace: system
|
||||||
|
username: root
|
||||||
|
password: root
|
||||||
|
pool_idle_timeout: 20000
|
||||||
|
retry_delay: 250
|
||||||
|
retry_limit: 10
|
||||||
|
show_sql: false
|
||||||
|
storage_groups:
|
||||||
|
- name: en.1meji.com
|
||||||
|
domains: /./
|
||||||
|
purged_cache_control: test_purged_cache_control
|
||||||
|
# Cache control for purged endpoints allowing short-term client caching
|
||||||
|
purged_cache_control_client_cache: test_purged_cache_control_with_client_caching
|
||||||
|
|
||||||
|
# Finally, a standard service-runner config.
|
||||||
|
info:
|
||||||
|
name: restbase
|
||||||
|
|
||||||
|
logging:
|
||||||
|
name: restbase
|
||||||
|
level: info
|
||||||
|
|
||||||
|
# Statsd metrics reporter
|
||||||
|
metrics:
|
||||||
|
type: statsd
|
||||||
|
host: localhost
|
||||||
|
port: 8125
|
||||||
|
|
||||||
|
num_workers: 1
|
@ -0,0 +1,135 @@
|
|||||||
|
# will work with Mathoid on any {domain}
|
||||||
|
paths:
|
||||||
|
/{api:v1}:
|
||||||
|
x-modules:
|
||||||
|
# swagger options, overriding the shared ones from the merged specs (?)
|
||||||
|
- spec:
|
||||||
|
info:
|
||||||
|
version: 1.0.0
|
||||||
|
title: Wikimedia REST API
|
||||||
|
description: Welcome to your RESTBase API.
|
||||||
|
#securityDefinitions: &wp/content-security/1.0.0
|
||||||
|
# mediawiki_auth:
|
||||||
|
# description: Checks permissions using MW api
|
||||||
|
# type: apiKey
|
||||||
|
# in: header
|
||||||
|
# name: cookie
|
||||||
|
# x-internal-request-whitelist:
|
||||||
|
# - /http:\/\/[a-zA-Z0-9\.]+\/w\/api\.php/
|
||||||
|
# Override the base path for host-based (proxied) requests. In our case,
|
||||||
|
# we proxy https://{domain}/api/rest_v1/ to the API.
|
||||||
|
x-host-basePath: /api/rest_v1
|
||||||
|
x-route-filters:
|
||||||
|
- path: ./lib/normalize_title_filter.js
|
||||||
|
options:
|
||||||
|
redirect_cache_control: '{{options.purged_cache_control}}'
|
||||||
|
paths:
|
||||||
|
/media:
|
||||||
|
x-modules:
|
||||||
|
- path: v1/mathoid.yaml
|
||||||
|
options: '{{options.mathoid}}'
|
||||||
|
#/testing:
|
||||||
|
# x-modules:
|
||||||
|
# - path: ../mathpipe.yaml
|
||||||
|
# options: '{{options.mathoid}}'
|
||||||
|
/page:
|
||||||
|
x-modules:
|
||||||
|
- path: v1/content.yaml
|
||||||
|
options:
|
||||||
|
purged_cache_control: '{{options.purged_cache_control}}'
|
||||||
|
- path: v1/common_schemas.yaml # Doesn't really matter where to mount it.
|
||||||
|
- path: v1/mobileapps.js
|
||||||
|
# NOTE: We're setting the `no-store` cache-control header so that we don't
|
||||||
|
# store MCS results - we don't have pre-generation for wikivoyage.
|
||||||
|
options: '{{merge({"response_cache_control": options.purged_cache_control},
|
||||||
|
options.mobileapps)}}'
|
||||||
|
- path: v1/pcs/stored_endpoint.js
|
||||||
|
options:
|
||||||
|
name: media-list
|
||||||
|
response_cache_control: '{{options.purged_cache_control}}'
|
||||||
|
host: '{{options.mobileapps.host}}'
|
||||||
|
- path: v1/pcs/stored_endpoint.js
|
||||||
|
options:
|
||||||
|
name: mobile-html
|
||||||
|
response_cache_control: '{{options.purged_cache_control}}'
|
||||||
|
host: '{{options.mobileapps.host}}'
|
||||||
|
- path: v1/pcs/mobile-html-offline-resources.yaml
|
||||||
|
options:
|
||||||
|
host: '{{options.mobileapps.host}}'
|
||||||
|
- path: v1/talk.yaml
|
||||||
|
options:
|
||||||
|
host: '{{options.mobileapps.host}}'
|
||||||
|
/transform:
|
||||||
|
x-modules:
|
||||||
|
- path: v1/transform.yaml
|
||||||
|
- path: v1/pcs/transform.js
|
||||||
|
options:
|
||||||
|
mobileapps_host: '{{options.mobileapps.host}}'
|
||||||
|
cx_host: '{{options.cxserver.host}}'
|
||||||
|
/data:
|
||||||
|
x-modules:
|
||||||
|
- path: v1/citoid.js
|
||||||
|
options: '{{options.citoid}}'
|
||||||
|
- path: v1/lists.js
|
||||||
|
options: '{{options.lists}}'
|
||||||
|
- path: v1/css.yaml
|
||||||
|
options:
|
||||||
|
host: '{{options.mobileapps.host}}'
|
||||||
|
- path: v1/javascript.yaml
|
||||||
|
options:
|
||||||
|
host: '{{options.mobileapps.host}}'
|
||||||
|
- path: v1/i18n.yaml
|
||||||
|
options:
|
||||||
|
host: '{{options.mobileapps.host}}'
|
||||||
|
/key_value:
|
||||||
|
x-modules:
|
||||||
|
- path: sys/backend_proxy.js
|
||||||
|
options: '{{options.proxy}}'
|
||||||
|
/page_revisions:
|
||||||
|
x-modules:
|
||||||
|
- path: sys/backend_proxy.js
|
||||||
|
options: '{{options.proxy}}'
|
||||||
|
options: '{{options}}'
|
||||||
|
|
||||||
|
/{api:sys}:
|
||||||
|
x-modules:
|
||||||
|
- spec:
|
||||||
|
paths:
|
||||||
|
/mathoid:
|
||||||
|
x-modules:
|
||||||
|
- path: sys/mathoid.js
|
||||||
|
options: '{{options.mathoid}}'
|
||||||
|
/table:
|
||||||
|
x-modules:
|
||||||
|
- name: restbase-mod-table-isekai-mysql
|
||||||
|
version: 1.0.0
|
||||||
|
type: npm
|
||||||
|
options:
|
||||||
|
conf: '{{options.table}}'
|
||||||
|
/key_value:
|
||||||
|
x-modules:
|
||||||
|
- path: sys/key_value.js
|
||||||
|
/post_data: &sys_post_data
|
||||||
|
x-modules:
|
||||||
|
- path: sys/post_data.js
|
||||||
|
/events:
|
||||||
|
x-modules:
|
||||||
|
- path: sys/events.js
|
||||||
|
options: '{{options.events}}'
|
||||||
|
/page_revisions:
|
||||||
|
x-modules:
|
||||||
|
- path: sys/page_revisions.js
|
||||||
|
/action:
|
||||||
|
x-modules:
|
||||||
|
- path: sys/action.js
|
||||||
|
options: '{{options.action}}'
|
||||||
|
/page_save:
|
||||||
|
x-modules:
|
||||||
|
- path: sys/page_save.js
|
||||||
|
/parsoid:
|
||||||
|
x-modules:
|
||||||
|
- path: sys/parsoid.js
|
||||||
|
options:
|
||||||
|
parsoidHost: '{{options.parsoid.host}}'
|
||||||
|
response_cache_control: '{{options.purged_cache_control}}'
|
||||||
|
options: '{{options}}'
|
Loading…
Reference in New Issue