geonode.base.api.views
Attributes
Classes
API endpoint that allows users to be viewed or edited. |
|
API endpoint that allows gropus to be viewed or edited. |
|
API endpoint that lists regions. |
|
API endpoint that lists hierarchical keywords. |
|
API endpoint that lists Thesaurus keywords. |
|
API endpoint that lists categories. |
|
API endpoint that lists all possible owners. |
|
API endpoint that allows base resources to be viewed or edited. |
Functions
|
Module Contents
- class geonode.base.api.views.UserViewSet[source]
Bases:
dynamic_rest.viewsets.DynamicModelViewSetAPI endpoint that allows users to be viewed or edited.
- class geonode.base.api.views.GroupViewSet[source]
Bases:
dynamic_rest.viewsets.DynamicModelViewSetAPI endpoint that allows gropus to be viewed or edited.
- class geonode.base.api.views.RegionViewSet[source]
Bases:
dynamic_rest.viewsets.WithDynamicViewSetMixin,rest_framework.mixins.ListModelMixin,rest_framework.mixins.RetrieveModelMixin,rest_framework.viewsets.GenericViewSetAPI endpoint that lists regions.
- class geonode.base.api.views.HierarchicalKeywordViewSet[source]
Bases:
dynamic_rest.viewsets.WithDynamicViewSetMixin,rest_framework.mixins.ListModelMixin,rest_framework.mixins.RetrieveModelMixin,rest_framework.viewsets.GenericViewSetAPI endpoint that lists hierarchical keywords.
- class geonode.base.api.views.ThesaurusKeywordViewSet[source]
Bases:
dynamic_rest.viewsets.WithDynamicViewSetMixin,rest_framework.mixins.ListModelMixin,rest_framework.mixins.RetrieveModelMixin,rest_framework.viewsets.GenericViewSetAPI endpoint that lists Thesaurus keywords.
- class geonode.base.api.views.TopicCategoryViewSet[source]
Bases:
dynamic_rest.viewsets.WithDynamicViewSetMixin,rest_framework.mixins.ListModelMixin,rest_framework.mixins.RetrieveModelMixin,rest_framework.viewsets.GenericViewSetAPI endpoint that lists categories.
- class geonode.base.api.views.OwnerViewSet[source]
Bases:
dynamic_rest.viewsets.WithDynamicViewSetMixin,rest_framework.mixins.ListModelMixin,rest_framework.mixins.RetrieveModelMixin,rest_framework.viewsets.GenericViewSetAPI endpoint that lists all possible owners.
- class geonode.base.api.views.ResourceBaseViewSet[source]
Bases:
dynamic_rest.viewsets.DynamicModelViewSetAPI endpoint that allows base resources to be viewed or edited.
- resource_service_permissions(request, pk, *args, **kwargs)[source]
Instructs the Async dispatcher to execute a ‘DELETE’ or ‘UPDATE’ on the permissions of a valid ‘uuid’
- GET input_params: { id: "<str: ID>" } - DELETE input_params: { id: "<str: ID>" } - PUT input_params: { id: "<str: ID>" owner: str = None permissions: dict = {} created: bool = False } - output_params: { output: { uuid: "<str: UUID>" } }
- output: { "status": "ready", "execution_id": "<str: execution ID>", "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>" }
Sample Requests:
Removes all the permissions (except owner and admin ones) from a Resource:
curl -v -X DELETE -u admin:admin -H "Content-Type: application/json" http://localhost:8000/api/v2/resources/<id>/permissions
Changes the owner of a Resource:
curl -u admin:admin --location --request PUT 'http://localhost:8000/api/v2/resources/<id>/permissions' \ --header 'Content-Type: application/json' \ --data-raw '{"groups": [],"organizations": [],"users": [{"id": 1001,"permissions": "owner"}]}'
Assigns View permissions to some users:
curl -u admin:admin --location --request PUT 'http://localhost:8000/api/v2/resources/<id>/permissions' \ --header 'Content-Type: application/json' \ --data-raw '{"groups": [],"organizations": [],"users": [{"id": 1000,"permissions": "view"}]}'
Assigns View permissions to anyone:
curl -u admin:admin --location --request PUT 'http://localhost:8000/api/v2/resources/<id>/permissions' \ --header 'Content-Type: application/json' \ --data-raw '{"groups": [],"organizations": [],"users": [{"id": -1,"permissions": "view"}]}'
Assigns View permissions to anyone and edit permissions to a Group on a Dataset:
curl -u admin:admin --location --request PUT 'http://localhost:8000/api/v2/resources/<id>/permissions' \ --header 'Content-Type: application/json' \ --data-raw '{"groups": [{"id": 1,"permissions": "manage"}],"organizations": [],"users": [{"id": -1,"permissions": "view"}]}'
- resource_service_ingest(request, resource_type: str = None, *args, **kwargs)[source]
Instructs the Async dispatcher to execute an ‘INGEST’ operation.
Warning
‘owner’ is mandatory in the defaults field.
- POST input_params:
uuid: “<str: UUID>”
files: “<list(str) path>”
defaults: “{“owner”:”<str: username>”,<list: str>}”
resource_type: “<enum: [‘dataset’, ‘document’, ‘map’, ‘<GeoApp: name>’]>”
- output_params:
output: <int: number of resources deleted / 0 if none>
output:
{ "status": "ready", "execution_id": "<str: execution ID>", "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>" }
Sample Request:
POST:
curl -v -X POST -u admin:admin -H "Content-Type: application/json" \ -d 'defaults={"owner":"admin","title":"pippo"}' \ -d 'files=["/mnt/c/Data/flowers.jpg"]' \ http://localhost:8000/api/v2/resources/ingest/document
Response:
{ "status": "ready", "execution_id": "90ca670d-df60-44b6-b358-d792c6aecc58", "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/90ca670d-df60-44b6-b358-d792c6aecc58" }
GET:
curl -v -X GET -u admin:admin http://localhost:8000/api/v2/resource-service/execution-status/90ca670d-df60-44b6-b358-d792c6aecc58
Response:
{ "user": "admin", "status": "finished", "func_name": "create", "created": "2021-07-22T15:32:09.096075Z", "finished": "2021-07-22T15:32:26.936683Z", "last_updated": "2021-07-22T15:32:09.096129Z", "input_params": { "uuid": "fa404f64-eb01-11eb-8f91-00155d41f2fb", "files": "['/mnt/c/Data/flowers.jpg']", "defaults": "{'owner':'admin','title':'pippo'}", "resource_type": "dataset" }, "output_params": { "output": { "uuid": "fa404f64-eb01-11eb-8f91-00155d41f2fb" } } }
- resource_service_create(request, resource_type: str = None, *args, **kwargs)[source]
Instructs the Async dispatcher to execute a ‘CREATE’ operation.
Warning
This will create an empty dataset; if you need to upload a resource to GeoNode, consider using the endpoint “ingest” instead.
POST input_params:
- Parameters:
uuid – <str: UUID>
defaults – {“owner”:”<str: username>”,<list: str>}
resource_type – <enum: [‘dataset’, ‘document’, ‘map’, ‘<GeoApp: name>’]>
Note
‘owner’ is mandatory
output_params:
- Parameters:
output – <int: number of resources deleted / 0 if none>
output:
{ "status": "ready", "execution_id": "<str: execution ID>", "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>" }
Sample Request:
1. curl -v -X POST -u admin:admin -H "Content-Type: application/json" \ -d 'defaults={"owner":"admin","title":"pippo"}' \ http://localhost:8000/api/v2/resources/create/dataset
OUTPUT:
{ "status": "ready", "execution_id": "90ca670d-df60-44b6-b358-d792c6aecc58", "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/90ca670d-df60-44b6-b358-d792c6aecc58" }
2. curl -v -X GET -u admin:admin \ http://localhost:8000/api/v2/resource-service/execution-status/90ca670d-df60-44b6-b358-d792c6aecc58
OUTPUT:
{ "user": "admin", "status": "finished", "func_name": "create", "created": "2021-07-22T15:32:09.096075Z", "finished": "2021-07-22T15:32:26.936683Z", "last_updated": "2021-07-22T15:32:09.096129Z", "input_params": { "uuid": "fa404f64-eb01-11eb-8f91-00155d41f2fb", "defaults": "{'owner':'admin','title':'pippo'}", "resource_type": "dataset" }, "output_params": { "output": { "uuid": "fa404f64-eb01-11eb-8f91-00155d41f2fb" } } }
- resource_service_delete(request, pk, *args, **kwargs)[source]
Instructs the Async dispatcher to execute a ‘DELETE’ operation over a valid ‘uuid’
DELETE
-input_params: { id: "<str: ID>" } - output_params: { output: <int: number of resources deleted / 0 if none> } - output: { "status": "ready", "execution_id": "<str: execution ID>", "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>" }
Sample request:
curl -v -X DELETE -u admin:admin http://localhost:8000/api/v2/resources/<id>/delete
OUTPUT:
{ "status":"ready", "execution_id":"7ed0b141-cf85-434f-bbfb-c02447a5221b", "status_url":"http://localhost:8000/api/v2/resource-service/execution-status/7ed0b141-cf85-434f-bbfb-c02447a5221b" }
curl -v -X GET -u admin:admin http://localhost:8000/api/v2/resource-service/execution-status/7ed0b141-cf85-434f-bbfb-c02447a5221b
OUTPUT:
{ "user":"admin", "status":"finished", "func_name":"delete", "created":"2021-07-19T14:09:59.930619Z", "finished":"2021-07-19T14:10:00.054915Z", "last_updated":"2021-07-19T14:09:59.930647Z", "input_params":{"uuid":"1234"}, "output_params":{"output":0} }
- resource_service_update(request, pk, *args, **kwargs)[source]
Instructs the Async dispatcher to execute a ‘UPDATE’ operation over a valid ‘uuid’
PUT
- input_params: { id: "<str: ID>" xml_file: str = None metadata_uploaded: bool = False vals: dict = {} regions: list = [] keywords: list = [] custom: dict = {} notify: bool = True } - output_params: { output: { uuid: "<str: UUID>" } }
output:
{ "status": "ready", "execution_id": "<str: execution ID>", "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>" }
Sample Request:
curl -v -X PUT -u admin:admin -H "Content-Type: application/json" -d 'vals={"title":"pippo"}' http://localhost:8000/api/v2/resources/<id>/update
OUTPUT:
{ "status":"ready", "execution_id":"08846e84-eae4-11eb-84be-00155d41f2fb", "status_url":"http://localhost:8000/api/v2/resource-service/execution-status/08846e84-eae4-11eb-84be-00155d41f2fb" }
curl -v -X GET -u admin:admin http://localhost:8000/api/v2/resource-service/execution-status/08846e84-eae4-11eb-84be-00155d41f2fb
OUTPUT:
{ "user": "admin", "status": "finished", "func_name": "update", "created": "2021-07-22T14:42:56.284740Z", "finished": "2021-07-22T14:43:01.813971Z", "last_updated": "2021-07-22T14:42:56.284797Z", "input_params": { "uuid": "ee11541c-eaee-11eb-942c-00155d41f2fb", "vals": "{'title':'pippo'}", "custom": {}, "notify": true, "regions": [], "keywords": [], "xml_file": null, "metadata_uploaded": false }, "output_params": { "output": { "uuid": "ee11541c-eaee-11eb-942c-00155d41f2fb" } } }
Sample Request with more parameters:
curl -v -X PUT -u admin:admin -H "Content-Type: application/json" -d 'vals={"title":"pippo"}' -d 'metadata_uploaded=true' -d 'keywords=["k1", "k2", "k3"]'
http://localhost:8000/api/v2/resources/<id>/update
- resource_service_copy(request, pk, *args, **kwargs)[source]
Instructs the Async dispatcher to execute a ‘COPY’ operation over a valid ‘pk’
PUT
input_params: { instance: "<str: ID>" owner: "<str: username = <current_user>>" defaults: dict = {} } - output_params: { output: { uuid: "<str: UUID>" } }
output:
{ "status": "ready", "execution_id": "<str: execution ID>", "status_url": "http://localhost:8000/api/v2/resource-service/execution-status/<str: execution ID>" }
Sample Request:
curl -v -X PUT -u admin:admin -H "Content-Type: application/json" -d 'defaults={"title":"pippo"}' http://localhost:8000/api/v2/resources/<id>/copy
OUTPUT:
{ "status":"ready", "execution_id":"08846e84-eae4-11eb-84be-00155d41f2fb", "status_url":"http://localhost:8000/api/v2/resource-service/execution-status/08846e84-eae4-11eb-84be-00155d41f2fb" }
curl -v -X GET -u admin:admin http://localhost:8000/api/v2/resource-service/execution-status/08846e84-eae4-11eb-84be-00155d41f2fb
OUTPUT:
{ "user": "admin", "status": "finished", "func_name": "update", "created": "2021-07-22T14:42:56.284740Z", "finished": "2021-07-22T14:43:01.813971Z", "last_updated": "2021-07-22T14:42:56.284797Z", "input_params": { "uuid": "ee11541c-eaee-11eb-942c-00155d41f2fb", "defaults": "{"title":"pippo"}" }, "output_params": { "output": { "uuid": "ee11541c-eaee-11eb-942c-00155d41f2fb" } } }
- extra_metadata(request, pk, *args, **kwargs)[source]
- PUT
update specific metadata. The ID of the metadata is required to perform the update
{ "id": 1, "name": "foo_name", "slug": "foo_sug", "help_text": "object", "field_type": "int", "value": "object", "category": "object" }
- DELETE
Expect a payload with the IDs of the metadata that should be deleted. Payload be like: [4, 3]
POST
{ "name": "foo_name", "slug": "foo_sug", "help_text": "object", "field_type": "int", "value": "object", "category": "object" }