Talk:RESTBase/Installation

About this board

Prh47bridge (talkcontribs)

I am using the latest RESTBase from git with MediaWiki 1.39.3. If I sent a page/html/SOMETITLE request to RESTBase, I can see from the logs that it is calling MYDOMAIN/w/rest.php/MYDOMAIN/v3/page/pagebundle/SOMETITLE/VERSIONID. However, this returns a 404 error saying that the requested relative path did not match any known handler. Any thoughts? Am I missing a configuration setting somewhere?

Ciencia Al Poder (talkcontribs)

You have to include the Parsoid "extension" in localsettings.php:

wfLoadExtension( 'Parsoid', "$IP/vendor/wikimedia/parsoid/extension.json" );

At least that's what I had to add to make it work on my installation, with this exact problem

Prh47bridge (talkcontribs)

That worked. Thanks.

Failed to load API definition

5
Prh47bridge (talkcontribs)

I've just moved my wiki to a new server. If I browse to /api/rest_v1/ I get the error Failed to load API definition with a message saying "Fetch error, undefined /MYWIKIDOMAIN/v1/?spec". Browsing to MYWIKIDOMAIN/v1/?spec produces a 404 error. It should be going to MYWIKIDOMAIN/api/rest_v1/?spec which returns the information that should appear on the page. I presume there is something wrong with my configuration but I can't figure out what. Any ideas?

Prh47bridge (talkcontribs)

Ignore this. I spotted the configuration step I missed. It is working now.

ArchEcho (talkcontribs)

may i ask what did you do to solve this? I went through the steps and I cannot find which step I missed.

Lifeaddict (talkcontribs)

I just ran into the same problem - can you possibly point out how you solved it? @Prh47bridge

@ArchEcho Could you solve this on your own?

ArchEcho (talkcontribs)

@Lifeaddict unfortunately no. I ended up with a fresh install of the newer version with the visualeditor stuff included and moved everything over.

Reply to "Failed to load API definition"

RESTBase over HTTPS on IIS

1
Gregz83 (talkcontribs)
MediaWiki 1.35.5
Server Windows 2016
Web Server IIS
DataBase MariaDB 10.6.7
PHP 7.4.13
Extensions 1.35 rel

I am not seeing anywhere how to set this configuration up when using IIS.

Please assist as I would like to get RESTBase and Parsoid communicating over HTTPS.

Reply to "RESTBase over HTTPS on IIS"

RESTBase gives "type":"https://mediawiki.org/wiki/HyperSwitch/errors/not_found#route","title":"Not found.","method":"get","uri":"/<my domain>/rest.php/v1/page/Main_Page"

2
Baplue Eric (talkcontribs)

I have a mediawiki 1.35 on RHEL 8 installation. I installed RESTBase and when I run the test command I get:

$ curl http://127.0.0.1:7231/wiki-surveyppp.app.jandenul.com/rest.php/v1/page/Main_Page

{"type":"https://mediawiki.org/wiki/HyperSwitch/errors/not_found#route","title":"Not found.","method":"get","uri":"/wiki-surveyppp.app.jandenul.com/rest.php/v1/page/Main_Page"}


On the server side I get

{"name":"restbase","hostname":"vm-mwsvdsppp01.jandenul.com","pid":2357,"level":30,"levelPath":"info/service-runner","msg":"master(2357) initializing 2 workers","time":"2021-03-24T16:55:08.128Z","v":0}

{"name":"restbase","hostname":"vm-mwsvdsppp01.jandenul.com","pid":2381,"level":50,"levelPath":"error/metrics","msg":"No such metrics client: 'undefined'","time":"2021-03-24T16:55:08.691Z","v":0}

{"name":"restbase","hostname":"vm-mwsvdsppp01.jandenul.com","pid":2381,"level":40,"levelPath":"warn/startup","msg":"listening on *:7231","time":"2021-03-24T16:55:09.634Z","v":0}

{"name":"restbase","hostname":"vm-mwsvdsppp01.jandenul.com","pid":2398,"level":50,"levelPath":"error/metrics","msg":"No such metrics client: 'undefined'","time":"2021-03-24T16:55:09.908Z","v":0}

{"name":"restbase","hostname":"vm-mwsvdsppp01.jandenul.com","pid":2398,"level":40,"levelPath":"warn/startup","msg":"listening on *:7231","time":"2021-03-24T16:55:10.376Z","v":0}

{"name":"restbase","hostname":"vm-mwsvdsppp01.jandenul.com","pid":2357,"level":40,"levelPath":"warn/service-runner","msg":"startup finished","time":"2021-03-24T16:55:10.376Z","v":0}

{

  "name": "restbase",

  "hostname": "vm-mwsvdsppp01.jandenul.com",

  "pid": 2381,

  "level": 20,

  "message": "404: not_found#route",

  "res": {

    "status": 404,

    "headers": {

      "access-control-allow-origin": "*",

      "access-control-allow-methods": "GET,HEAD",

      "access-control-allow-headers": "accept, content-type, content-length, cache-control, accept-language, api-user-agent, if-match, if-modified-since, if-none-match, dnt, accept-encoding",

      "access-control-expose-headers": "etag",

      "x-content-type-options": "nosniff",

      "x-frame-options": "SAMEORIGIN",

      "referrer-policy": "origin-when-cross-origin",

      "x-xss-protection": "1; mode=block",

      "content-security-policy": "default-src 'none'; frame-ancestors 'none'",

      "x-content-security-policy": "default-src 'none'; frame-ancestors 'none'",

      "x-webkit-csp": "default-src 'none'; frame-ancestors 'none'",

      "cache-control": "private, max-age=0, s-maxage=0, must-revalidate",

      "x-request-id": "ba598da0-8cc1-11eb-808c-d7fe3ae661f9",

      "server": "vm-mwsvdsppp01.jandenul.com"

    }

  },

  "stack": "HTTPError: 404: not_found#route

    at HyperSwitch._request (/usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:270:19)

    at _createFilteredHandler (/usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:172:26)

    at tryCatcher (/usr/RESTBase/node_modules/bluebird/js/release/util.js:16:23)

    at /usr/RESTBase/node_modules/bluebird/js/release/method.js:15:34

    at handlerWrapper (/usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:424:37)

    at next (/usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:410:42)

    at Object.normalizeHeaders [as filter] (/usr/RESTBase/lib/normalize_headers_filter.js:11:12)

    at handlerWrapper (/usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:422:27)

    at next (/usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:410:42)

    at Object.addCSPHeaders [as filter] (/usr/RESTBase/lib/security_response_header_filter.js:61:22)

    at handlerWrapper (/usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:422:27)

    at /usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:428:28

    at HyperSwitch._filteredRequest (/usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:173:19)

    at HyperSwitch.request (/usr/RESTBase/node_modules/hyperswitch/lib/hyperswitch.js:162:21)

    at parsePOST.catchThrow.then (/usr/RESTBase/node_modules/hyperswitch/lib/server.js:351:27)

    at tryCatcher (/usr/RESTBase/node_modules/bluebird/js/release/util.js:16:23)",

  "latency": 3,

  "root_req": {

    "method": "get",

    "uri": "/wiki-surveyppp.app.jandenul.com/rest.php/v1/page/Main_Page",

    "headers": {

      "user-agent": "curl/7.61.1",

      "x-client-ip": "::ffff:127.0.0.1",

      "x-forwarded-for": "::ffff:127.0.0.1",

      "x-request-id": "ba598da0-8cc1-11eb-808c-d7fe3ae661f9",

      "x-request-class": "internal"

    }

  },

  "request_id": "ba598da0-8cc1-11eb-808c-d7fe3ae661f9",

  "levelPath": "debug/request",

  "msg": "404: not_found#route",

  "time": "2021-03-24T16:55:24.797Z",

  "v": 0

}


But when I put http://wiki-surveyppp.app.jandenul.com/rest.php/v1/page/Main_Page in my browser I have a correct (json) reply

72.179.2.124 (talkcontribs)

I'm having the same problem. Did you ever manage to solve this?

Reply to "RESTBase gives "type":"https://mediawiki.org/wiki/HyperSwitch/errors/not_found#route","title":"Not found.","method":"get","uri":"/<my domain>/rest.php/v1/page/Main_Page""

Restbase runs partially: /page/title/<title> works; /page/html/<title> not so much

3
Summary by Kghbln

Make sure that Parsoid is loaded for MW 1.35 and later if VisualEditor is not installed.

wfLoadExtension(
    'Parsoid',
    'vendor/wikimedia/parsoid/extension.json'
);
Oetterer (talkcontribs)

Hey folks

After some hair loss and much poking in the dark I got my RESTBase partially running. As stated in the title, I can access the RESTBase via curl and browser and I can get title information about a page with /page/title/Hauptseite (german wiki obviously). Alas, when I try to get content with /page/html/Hauptseite I get a 404:

{
  "type": "https://mediawiki.org/wiki/HyperSwitch/errors/not_found",
  "title": "Not found.",
  "method": "get",
  "uri": "/www.mywiki.de/v1/page/html/Hauptseite"
}

as opposed to /page/title/Hauptseite where I get

{
  "items": [
    {
      "title": "Hauptseite",
      "page_id": 11,
      "rev": 1319,
      "tid": "7a70c820-7d1c-11eb-9913-fb7beb5297c0",
      "namespace": 0,
      "user_id": 12,
      "user_text": "Anon",
      "timestamp": "2021-01-26T15:50:46Z",
      "comment": "",
      "tags": [
        "visualeditor-wikitext"
      ],
      "restrictions": [],
      "page_language": "de",
      "redirect": false
    }
  ]
}

Any pointers where I could search for my mistake?

System is:

  • MW 1.35
  • PHP 7.4
  • Node: v10.19.0

What might be of importance: the apache redirects ALL requests to port 80 to port 443 (so all http traffic will be redirected to https). Therefore I used the following in my config.yaml:

Oh, and https://www.mywiki.de/w/rest.php/v1/page/Hauptseite works just fine.

Any help appreciated, thanks in advance!

Oetterer (talkcontribs)

Posting the cause of my error here in case someone else has the same problem:

I installed RESTBase on a 1.35 wiki w/o VisualEditor, b/c I wanted to see RESTBase running, before tackling VE. But on a normal wiki, parsoid is not loaded. So if you run in the aforementioned problem, either install and activate VisualEditor or add the following to your LocalSettings.php:

wfLoadExtension( 'Parsoid', 'vendor/wikimedia/parsoid/extension.json' );
This post was hidden by Oetterer (history)

Cassandra server query, java.lang.AssertionError

1
John Majorly (talkcontribs)

I keep getting this java.lang.AssertionError from my cassandra server. I tried to search for an answer but what I found, which was not specific to restbase, didn't work.

Has anyone encountered this java.lang.AssertionError or has any idea why I might be getting this?

This happens when I try to Get myrestserver:7231/mysite/v1/page/html/Main_Page


I can Get /page/title/Main_Page

But the error seems to be when I Get /page/html/{title}


{"name":"restbase","hostname":"myhost","pid":3711,"level":10,"message":"Connection","info":"Sent stream #1 to 3.234.XXX.XXX:9142","levelPath":"trace/table/cassandra/driver","msg":"Connection","time":"2020-11-11T10:24:37.761Z","v":0}

{"name":"restbase","hostname":"myhost","pid":3728,"level":10,"message":"Connection","info":"Received frame #1 from 3.234.XXX.XXX:9142","levelPath":"trace/table/cassandra/driver","msg":"Connection","time":"2020-11-11T10:24:37.816Z","v":0}

{"name":"restbase","hostname":"myhost","pid":3728,"level":30,"message":"HostConnectionPool","info":"Connection to 3.234.XXX.XXX:9142 opened successfully","levelPath":"info/table/cassandra/driver","msg":"HostConnectionPool","time":"2020-11-11T10:24:37.817Z","v":0}

{"name":"restbase","hostname":"myhost","pid":3728,"level":30,"message":"HostConnectionPool","info":"Connection pool to host 3.234.XXX.XXX:9142 created with 1 connection(s)","levelPath":"info/table/cassandra/driver","msg":"HostConnectionPool","time":"2020-11-11T10:24:37.817Z","v":0}

{"name":"restbase","hostname":"myhost","pid":3728,"level":10,"message":"Connection","info":"Received frame #1 from 3.234.XXX.XXX:9142","levelPath":"trace/table/cassandra/driver","msg":"Connection","time":"2020-11-11T10:24:37.817Z","v":0}

{"name":"restbase","hostname":"myhost","pid":3728,"level":30,"message":"HostConnectionPool","info":"Connection to 3.234.XXX.XXX:9142 opened successfully","levelPath":"info/table/cassandra/driver","msg":"HostConnectionPool","time":"2020-11-11T10:24:37.817Z","v":0}

{"name":"restbase","hostname":"myhost","pid":3728,"level":30,"message":"HostConnectionPool","info":"Connection pool to host 3.234.XXX.XXX:9142 created with 1 connection(s)","levelPath":"info/table/cassandra/driver","msg":"HostConnectionPool","time":"2020-11-11T10:24:37.817Z","v":0}

{ ResponseError: java.lang.AssertionError

   at FrameReader.readError (/var/www/html/node_modules/cassandra-driver/lib/readers.js:326:15)

   at Parser.parseBody (/var/www/html/node_modules/cassandra-driver/lib/streams.js:194:27)

   at Parser._transform (/var/www/html/node_modules/cassandra-driver/lib/streams.js:137:10)

   at Parser.Transform._read (_stream_transform.js:190:10)

   at Parser.Transform._write (_stream_transform.js:178:12)

   at doWrite (_stream_writable.js:415:12)

   at writeOrBuffer (_stream_writable.js:399:5)

   at Parser.Writable.write (_stream_writable.js:299:11)

   at Protocol.ondata (_stream_readable.js:710:20)

   at Protocol.emit (events.js:198:13)

   at addChunk (_stream_readable.js:288:12)

   at readableAddChunk (_stream_readable.js:269:11)

   at Protocol.Readable.push (_stream_readable.js:224:10)

   at Protocol.Transform.push (_stream_transform.js:151:32)

   at Protocol.readItems (/var/www/html/node_modules/cassandra-driver/lib/streams.js:109:10)

   at Protocol._transform (/var/www/html/node_modules/cassandra-driver/lib/streams.js:32:10)

  name: 'ResponseError',

  info: 'Represents an error message from the server',

  message: 'java.lang.AssertionError',

  code: 0 }

Reply to "Cassandra server query, java.lang.AssertionError"

using Amazon Keyspaces (Cassandra)

3
Andy Kent Jr (talkcontribs)

I can't get RESTBase to work using Amazon Keyspaces, I think I have followed the AWS instructions correctly but don't see why it is not working.


I think the following should be correct? (rest of the yaml file should be correct as it works with sqlite)


   /table:

     x-modules:

       - name: restbase-mod-table-cassandra

         version: 1.0.0

         type: npm

         options:

           conf:

             hosts: [cassandra.us-east-1.amazonaws.com]

             keyspace: myAWSkeyspace

             username: myAWSkeyspaceUsername

             password: myAWSkeyspacePassword

             localDc: us-east-1

             datacenters:

               - us-east-1

             tls:

               ca:

                 - /path/to/cert/AmazonRootCA1.pem

             storage_groups:

               - name: default.group.local

                 domains: /./

Andy Kent Jr (talkcontribs)

if I try to debug this is what I get, I can't figure out this options.log is not a function error. It doesn't error out if I comment


options.log(level, {

message,

info

});


in file /path/to/restbase/node_modules/restbase-mod-table-cassandra/lib/index.js, line 107.


Is that something I need to configure to the yaml config file?!


{

"name":"restbase",

"hostname":"XXXXXX",

"pid":65032,

"level":60,

"err":{"message":"options.log is not a function",

"name":"TypeError",

"stack":"TypeError: options.log is not a function\n

   at Client.client.on (/path/to/restbase/node_modules/restbase-mod-table-cassandra/lib/index.js:107:17)\n

   at Client.emit (events.js:198:13)\n

   at Client.log (/path/to/restbase/node_modules/cassandra-driver/lib/utils.js:99:8)\n

   at Client._connectCb (/path/to/restbase/node_modules/cassandra-driver/lib/client.js:406:8)\n

   at handlerWrapper (/path/to/restbase/node_modules/cassandra-driver/lib/utils.js:416:13)\n

   at tryCatcher (/path/to/restbase/node_modules/bluebird/js/release/util.js:16:23)\n

   at Promise.fromNode.Promise.fromCallback (/path/to/restbase/node_modules/bluebird/js/release/promise.js:209:30)\n

   at Client.promiseWrapper (/path/to/restbase/node_modules/cassandra-driver/lib/utils.js:415:10)\n

   at Client.connect (/path/to/restbase/node_modules/cassandra-driver/lib/client.js:384:31)\n

   at makeClient (/path/to/restbase/node_modules/restbase-mod-table-cassandra/lib/index.js:113:19)\n

   at RBCassandra.setup (/path/to/restbase/node_modules/restbase-mod-table-cassandra/index.js:210:16)\n

   at makeRBCassandra (/path/to/restbase/node_modules/restbase-mod-table-cassandra/index.js:226:15)\n

   at Router._loadModule (/path/to/restbase/node_modules/hyperswitch/lib/router.js:272:26)\n

   at P.each (/path/to/restbase/node_modules/hyperswitch/lib/router.js:298:25)\n

   at tryCatcher (/path/to/restbase/node_modules/bluebird/js/release/util.js:16:23)\n

   at Object.gotValue (/path/to/restbase/node_modules/bluebird/js/release/reduce.js:166:18)"},"stack":"TypeError: options.log is not a function\n

   at Client.client.on (/path/to/restbase/node_modules/restbase-mod-table-cassandra/lib/index.js:107:17)\n

   at Client.emit (events.js:198:13)\n    at Client.log (/path/to/restbase/node_modules/cassandra-driver/lib/utils.js:99:8)\n

   at Client._connectCb (/path/to/restbase/node_modules/cassandra-driver/lib/client.js:406:8)\n

   at handlerWrapper (/path/to/restbase/node_modules/cassandra-driver/lib/utils.js:416:13)\n

   at tryCatcher (/path/to/restbase/node_modules/bluebird/js/release/util.js:16:23)\n

   at Promise.fromNode.Promise.fromCallback (/path/to/restbase/node_modules/bluebird/js/release/promise.js:209:30)\n

   at Client.promiseWrapper (/path/to/restbase/node_modules/cassandra-driver/lib/utils.js:415:10)\n

   at Client.connect (/path/to/restbase/node_modules/cassandra-driver/lib/client.js:384:31)\n

   at makeClient (/path/to/restbase/node_modules/restbase-mod-table-cassandra/lib/index.js:113:19)\n

   at RBCassandra.setup (/path/to/restbase/node_modules/restbase-mod-table-cassandra/index.js:210:16)\n

   at makeRBCassandra (/path/to/restbase/node_modules/restbase-mod-table-cassandra/index.js:226:15)\n

   at Router._loadModule (/path/to/restbase/node_modules/hyperswitch/lib/router.js:272:26)\n

   at P.each (/path/to/restbase/node_modules/hyperswitch/lib/router.js:298:25)\n

   at tryCatcher (/path/to/restbase/node_modules/bluebird/js/release/util.js:16:23)\n

   at Object.gotValue (/path/to/restbase/node_modules/bluebird/js/release/reduce.js:166:18)",

"levelPath":"fatal/startup",

"msg":"Message not supplied",

"time":"2020-10-22T22:49:53.937Z",

"v":0

}

Andy Kent Jr (talkcontribs)

After lots of pain....

InvalidRequest: Error from server: code=2200 [Invalid query] message="Static column is not yet supported."

Amazon Keyspaces doesn't support Static column, and therefore it is not compatible with RESTBase.

Reply to "using Amazon Keyspaces (Cassandra)"

Access to Cassandra or SQLite Database

1
185.69.144.150 (talkcontribs)

Hi have an public wiki and in my setup I will have to use a shared Cassandra database.

I understand all that everything that will be cached is HTML/wikitext which is public to begin with, so even if my Cassandra database is, lets say, no so secure then that shouldn't be a big concern.

Would you agree that that assumption is correct?

Thank you

Reply to "Access to Cassandra or SQLite Database"
TiltedCerebellum (talkcontribs)

I'm struggling to get RESTBase working. I have parsoid set up and working fine on port 8000.

With RestBase I'm continuously getting the error:

{"type":"https://mediawiki.org/wiki/HyperSwitch/errors/not_found#route","title":"Not found.","method":"get","uri":"/my-site.wiki/v1/page/html/Main_Page"}

My mediawiki api is viewable at the path I set. Parsoid is accessible at 8000.

I tried changing all the instances of localhost to www.my-site.wiki. I've tried dropping the https and going with http, dropping the www. I'm at a bit of a loss for what I should try next. Some help would be greatly appreciated.


The docs say a route error suggests that the requested endpoint does not exist, but the page exists and the api path is correct.

Any idea on what I'm doing wrong? Or next steps for troubleshooting?

# RESTBase config for small wiki installs
#
# - sqlite backend
# - parsoid at http:localhost:8000
# - wiki at https://www.my-site.wiki/api.php
#
# Quick setup:
# - npm install
#   If you see errors about sqlite, you might have to `apt-get install
#   libsqlite3-dev`.
# - cp config.example.yaml config.yaml
# - double-check and possibly modify lines marked with XXX, then start restbase with
#
#   node server
#
# - If all went well, http://localhost:7231/localhost/v1/page/html/Main_Page
# should show your wiki's [[Main Page]].

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
          - path: lib/normalize_headers_filter.js
        x-sub-request-filters:
          - type: default
            name: http
            options:
              allow:
                - pattern: https://www.my-site.wiki/api.php
                  forward_headers: true
                - pattern: http://localhost:8000
                  forward_headers: true
                - pattern: /^https?:\/\//
        paths:
          /{domain:www.my-site.wiki}/{api:v1}:
            x-modules:
              - spec:
                  info:
                    version: 1.0.0
                    title: Wikimedia REST API
                    description: Welcome to your RESTBase API.
                  x-route-filters:
                    - path: ./lib/normalize_title_filter.js
                      options:
                        redirect_cache_control: 's-maxage=0, max-age=86400'
                  paths:
                    /page:
                      x-modules:
                        - path: v1/content.yaml
                          options:
                            response_cache_control: 's-maxage=0, max-age=86400'
                        - path: v1/common_schemas.yaml # Doesn't really matter where to mount it.
                    /transform:
                      x-modules:
                        - path: v1/transform.yaml

          /{domain:localhost}/{api:sys}:
            x-modules:
              - path: projects/proxy.yaml
                options:
                  backend_host_template: '{{"/{domain}/sys/legacy"}}'
              - spec:
                  paths:
                    /table:
                      x-modules:
                        - path: sys/table.js
                          options:
                            conf:
                              backend: sqlite
                              dbname: db.sqlite3
                              pool_idle_timeout: 20000
                              retry_delay: 250
                              retry_limit: 10
                              show_sql: false
                              storage_groups:
                                - name: local
                                  domains: /./
                    /legacy/key_value:
                      x-modules:
                        - path: sys/key_value.js
                    /legacy/page_revisions:
                      x-modules:
                        - path: sys/page_revisions.js
                    /post_data:
                      x-modules:
                        - path: sys/post_data.js
                    /action:
                      x-modules:
                        - path: sys/action.js
                          options:
                            # XXX Check API URL!
                            apiUriTemplate: https://www.my-site.wiki/api.php
                            # XXX Check the base RESTBase URI
                            baseUriTemplate: "{{'http://127.0.0.1:7231/{domain}/v1'}}"
                    /page_save:
                      x-modules:
                        - path: sys/page_save.js
                    /parsoid:
                      x-modules:
                        - path: sys/parsoid.js
                          options:
                            parsoidHost: http://localhost:8000
                            response_cache_control: 's-maxage=0, max-age=86400'

# Finally, a standard service-runner config.
info:
  name: restbase

logging:
  name: restbase
  level: info

Ciencia Al Poder (talkcontribs)

The log you posted reads: "uri":"/my-site.wiki/v1/page/html/Main_Page"


But in your config, the path reads: /{domain:www.my-site.wiki}/{api:v1}:

my-site.wiki is not the same as www.my-site.wiki, thus it doesn't match. You should change your config to match your actual domain.

TiltedCerebellum (talkcontribs)

My domain is at www.my-site.wiki, any attempt to use it without www redirects to www.my-site.wiki. I was testing any URL pattern that I could get to work and forgot to update it to the correct one in my initial post (when I test the URL with or without the www the result is the same error, that error is output at the testing URL).

When I change the url I'm using to test it to have the www I get the same error:

When I change the config to remove the www I get the same error:

{"type":"https://mediawiki.org/wiki/HyperSwitch/errors/not_found#route","title":"Not found.","method":"get","uri":"/www.my-site.wiki/v1/page/html/Main_Page"}
Reply to "Not_found#route"

Which sections bullet points are applicable to

1
TiltedCerebellum (talkcontribs)

It is really unclear which sections of the page the bullet points are applicable to because the initial instruction appears at the top, then a bullet below the example. People read the top of the example, the do the changes, then read the bullet below (like this is not applicable unless...) and then they changed something they shouldn't have changed (because they were doing it in order and expect to be able to do it in order) and then it isn't exactly clear which section the bullet applies to... please but the bullets above the relevant example and below the instruction text. Then the bullets can have a colon at the end of each bullet statement to make it actually clear what they apply to.

Right now it is hard to decipher this page correctly so I'm doing it for someone else who found it to be hard to follow.

We don't skip the example, read below it, then look up to do the example... we read what's above the example (which is usually the instruction with any notes or bullet points below that), then look down at, then do the example.


Instead of:

Edit the config.yaml file in these parts:

(example)

  • You don't need to change anything nor worry about this section unless you run a private wiki (see question)

It would be a lot better if it said:

If you run a private wiki, edit the config.yaml file in these parts:

(private wiki example)


Also edit the following in the config.yaml (public or private wikis) to fill in these parts:

  • Relevant bullet above the example:

(example)

  • Relevant bullet above the example:

(example)