mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-24 00:47:57 -05:00
124 lines
3.7 KiB
Plaintext
124 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 *
|
|
************************************************************************/
|