mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			127 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.pl again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class QgsServerApi
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
Server generic API endpoint abstract base class.
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsServerOgcApi`
 | 
						|
 | 
						|
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.pl again   *
 | 
						|
 ************************************************************************/
 |