mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-31 00:06:02 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			126 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			126 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
 | |
| 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   *
 | |
|  ************************************************************************/
 |