mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-09 00:08:52 -04:00
123 lines
3.7 KiB
Plaintext
123 lines
3.7 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/server/qgsserverapi.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.py again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class QgsServerApi
|
|
{
|
|
%Docstring(signature="appended")
|
|
Server generic API endpoint abstract base class.
|
|
|
|
.. seealso:: :py:class:`QgsServerOgcApi` for an OGC API (aka WFS3) implementation.
|
|
|
|
An API must have a name and a (possibly empty) version and define a
|
|
(possibly empty) root path (e.g. "/wfs3").
|
|
|
|
The server routing logic will check incoming request URLs by passing
|
|
them to the API's accept(url) method, the default implementation
|
|
performs a simple check for the presence of the API's root path string
|
|
in the URL. This simple logic implies that APIs must be registered in
|
|
reverse order from the most specific to the most generic: given two APIs
|
|
with root paths '/wfs' and '/wfs3', '/wfs3' must be registered first or
|
|
it will be shadowed by '/wfs'. APIs developers are encouraged to
|
|
implement a more robust accept(url) logic by making sure that their APIs
|
|
accept only URLs they can actually handle, if they do, the APIs
|
|
registration order becomes irrelevant.
|
|
|
|
After the API has been registered to the server API registry:
|
|
|
|
.. code-block:: python
|
|
|
|
class API(QgsServerApi):
|
|
|
|
def name(self):
|
|
return "Test API"
|
|
|
|
def rootPath(self):
|
|
return "/testapi"
|
|
|
|
def executeRequest(self, request_context):
|
|
request_context.response().write(b"\"Test API\"")
|
|
|
|
server = QgsServer()
|
|
api = API(server.serverInterface())
|
|
server.serverInterface().serviceRegistry().registerApi(api)
|
|
|
|
the incoming calls with an URL path starting with the API root path will
|
|
be routed to the first matching API and :py:func:`~executeRequest`
|
|
method of the API will be invoked.
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsserverapi.h"
|
|
%End
|
|
public:
|
|
QgsServerApi( QgsServerInterface *serverIface );
|
|
%Docstring
|
|
Creates a QgsServerApi object
|
|
%End
|
|
|
|
virtual ~QgsServerApi();
|
|
|
|
virtual const QString name() const = 0;
|
|
%Docstring
|
|
Returns the API name
|
|
%End
|
|
|
|
virtual const QString description() const = 0;
|
|
%Docstring
|
|
Returns the API description
|
|
%End
|
|
|
|
virtual const QString version() const;
|
|
%Docstring
|
|
Returns the version of the service
|
|
|
|
.. note::
|
|
|
|
the default implementation returns an empty string
|
|
%End
|
|
|
|
virtual const QString rootPath() const = 0;
|
|
%Docstring
|
|
Returns the root path for the API
|
|
%End
|
|
|
|
virtual bool accept( const QUrl &url ) const;
|
|
%Docstring
|
|
Returns ``True`` if the given ``url`` is handled by the API, default
|
|
implementation checks for the presence of rootPath inside the ``url``
|
|
path.
|
|
%End
|
|
|
|
virtual void executeRequest( const QgsServerApiContext &context ) const = 0;
|
|
%Docstring
|
|
Executes a request by passing the given ``context`` to the API handlers.
|
|
%End
|
|
|
|
QgsServerInterface *serverIface() const;
|
|
%Docstring
|
|
Returns the server interface
|
|
%End
|
|
|
|
};
|
|
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/server/qgsserverapi.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.py again *
|
|
************************************************************************/
|