| #
b5284271 |
| 09-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: add backward compatibility to API Version 11
This adds legacy support for the old API calls. This is mostly untested but should work. Returns might not be 100% compatible in all cases but I did
API: add backward compatibility to API Version 11
This adds legacy support for the old API calls. This is mostly untested but should work. Returns might not be 100% compatible in all cases but I did my best to return the same things as before.
This will be removed in the future of course and is just to not completely break any API usage immeadiately.
show more ...
|
| #
d48c2b25 |
| 07-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: code style fixes
|
| #
12b99753 |
| 07-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
fix XMLRPC server tests
We test against the MockAPICore now since the tests are meant to ensure the general functionality of accepting XML and correctly calling APICalls works, not that the API retu
fix XMLRPC server tests
We test against the MockAPICore now since the tests are meant to ensure the general functionality of accepting XML and correctly calling APICalls works, not that the API returns the right things (this is tested in the ApiCore tests). Since we no longer use dates but always integers, we no longer need to handle that.
show more ...
|
| #
d1f06eb4 |
| 06-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: ApiCore tests fixed and extended
|
| #
b433b69e |
| 05-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: remove file and date transformations
We always deal with timestamps or base64 now. Removing some of the magic makes everything less complex.
Only affected plugin is confmanager, which needs an
API: remove file and date transformations
We always deal with timestamps or base64 now. Removing some of the magic makes everything less complex.
Only affected plugin is confmanager, which needs an update.
show more ...
|
| #
e4e3d439 |
| 05-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
moved OpenAPI generator to correct namespace
added missing doc blocks
|
| #
6cce3332 |
| 05-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
Reworked API definition
This cleans up the API:
* no more compatibility with obsolete wiki API * no more difference between wiki.* and dokuwiki.* calls -> core.* * use of optional parameters avoids
Reworked API definition
This cleans up the API:
* no more compatibility with obsolete wiki API * no more difference between wiki.* and dokuwiki.* calls -> core.* * use of optional parameters avoids double definitions * use Response objects for complex results * always use named primitives as input * major cleanup of docblock descriptions
show more ...
|
| #
1468a128 |
| 01-Dec-2023 |
Andreas Gohr <andi@splitbrain.org> |
Fix first set of API tests
|
| #
42e66c7a |
| 30-Nov-2023 |
Andreas Gohr <andi@splitbrain.org> |
First go at refactoring the API mechanisms
This introduces an ApiCall class that wraps around the actual method that produces the result. This replaces various loose array structures that provided t
First go at refactoring the API mechanisms
This introduces an ApiCall class that wraps around the actual method that produces the result. This replaces various loose array structures that provided the meta information before.
The ApiCall streamlines the aggregation of meta information between core and plugin methods. Now all data is produced by Reflection based introspection. Certain aspects can be overridden if needed. See ApiCore::getRemoteInfo() for examples
This change removes the _getMethods() method from remote plugins and introduces a getMethods() method. The two are NOT compatible as the latter now returns a list of ApiCalls. However when looking at the existing plugins, it seems that _getMethods() was nearly 100% obsolete with the Reflection based default implementation. So most plugins will not be affected at all. Some might now export one or two more methods than before because of poor visibility settings (eg. not declaring private/protected methods as such).
This change removes the RPC_CALL_ADD hook. Only a single plugin ever implemented it. I'm not sure what this hook was supposed to do anyway. Being able to declare arbitrarily named API endpoints seems wrong to me anyway.
The new ApiCall now also supports passing named instead of positional parameters. This will open up a new opportunity to get a proper openapi spec running.
Next step is fixing the tests.
show more ...
|
| #
a70eeb2f |
| 28-Nov-2023 |
Andreas Gohr <andi@splitbrain.org> |
Merge pull request #3961 from dokuwiki/jsonrpc
Add JSON based alternative to XMLRPC
|
| #
6c16a3a9 |
| 14-Sep-2023 |
fiwswe <fiwswe@fwml.de> |
Use str_starts_with/str_ends_with
|
| #
d4f83172 |
| 31-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
code style: line breaks
|
| #
51ee2399 |
| 30-Aug-2023 |
Gerrit Uitslag <klapinklapin@gmail.com> |
update some plugin classes in phpdocs, reformatting
|
| #
a19c9aa0 |
| 30-Aug-2023 |
Gerrit Uitslag <klapinklapin@gmail.com> |
recover comments in list
|
| #
899eedfd |
| 29-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
relax instance check in remoteAPI loading
This broke tests. Ideally an Interface should be defined that both the real APICore and the TestPlugin implement.
|
| #
104a3b7c |
| 29-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
Apply rector fixes to inc/Remote
|
| #
d2e112c0 |
| 27-Apr-2023 |
Andreas Gohr <andi@splitbrain.org> |
fix line length issue
|
| #
f657e5d0 |
| 27-Apr-2023 |
Andreas Gohr <andi@splitbrain.org> |
Add JSON based alternative to XMLRPC
XMLRPC is a rather outdated and old-fashioned protocol not much in use anymore. Developers prefer simpler, JSON based APIs.
This adds a new "JSONRPC" API. Basic
Add JSON based alternative to XMLRPC
XMLRPC is a rather outdated and old-fashioned protocol not much in use anymore. Developers prefer simpler, JSON based APIs.
This adds a new "JSONRPC" API. Basically it exposes exactly the same method calls as the XMLRPC API but using JSON instead of XML. It's not a classical REST API, but should be just as easy to use for developers.
Here is an example call using CURL:
curl http://localhost/dokuwiki/lib/exe/jsonrpc.phs \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $token" \ -d '["wiki"]'
Please note that the above uses the token auth implemented in #2432. Authentication via basic auth or cookies would work as well.
show more ...
|
| #
ec34bb30 |
| 19-Oct-2022 |
Andreas Gohr <andi@splitbrain.org> |
Update core code to make use of sexplode()
This makes use of our own explode mechanism everywhere were we expect a fixed number of results.
|
| #
e6a9d76f |
| 30-Sep-2020 |
Syntaxseed <825423+syntaxseed@users.noreply.github.com> |
Method names with leading double underscore are reserved by PHP.
|
| #
f7acdb5e |
| 16-Feb-2021 |
Andreas Gohr <andi@splitbrain.org> |
fix method handling for RPC_CALL_ADD
This event seems not to be used by any plugin, which explains why this bug hasn't surfaced yet. Access is always checked against a full method name in the form o
fix method handling for RPC_CALL_ADD
This event seems not to be used by any plugin, which explains why this bug hasn't surfaced yet. Access is always checked against a full method name in the form of plugin.<pluginname>.<method> Such a full method was not passed when using an event as described in the documentation.
show more ...
|
| #
056bf31f |
| 06-Feb-2021 |
Damien Regad <dregad@mantisbt.org> |
Fix various errors in PHPUnit tests on PHP 8
|
| #
6d7829a7 |
| 03-Mar-2020 |
Phy <git@phy25.com> |
add alternative support for PHP not throwing ArgumentCountError in remote/APi
PHP 5.6 and 7.0 won't throw ArgumentCountError. In this case, we use set_error_handler on E_WARNING and throw exceptions
add alternative support for PHP not throwing ArgumentCountError in remote/APi
PHP 5.6 and 7.0 won't throw ArgumentCountError. In this case, we use set_error_handler on E_WARNING and throw exceptions if it's about argument missing.
show more ...
|
| #
e1215f13 |
| 03-Mar-2020 |
Phy <git@phy25.com> |
catch ArgumentCountError and return XML error message for remoteAPI, fixes #2545
This is caused by a PHP 7.1 change: https://www.php.net/manual/en/migration71.incompatible.php #migration71.incompati
catch ArgumentCountError and return XML error message for remoteAPI, fixes #2545
This is caused by a PHP 7.1 change: https://www.php.net/manual/en/migration71.incompatible.php #migration71.incompatible.too-few-arguments-exception
Previously call_user_func_array will make those missing arguments to NULL without throwing an exception.
show more ...
|
| #
27f63a23 |
| 21-May-2019 |
Andreas Gohr <andi@splitbrain.org> |
some more PSR2 cleanup
mostly overlong lines and more exclude patterns
|