-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GNIP-79: GeoNode REST APIs (v2) #6685
Comments
absolutely +1! |
I like the idea and current dev implementation. Nonetheless we should discuss how and if this will connect and/or interfere with pygeoapi. |
I like the general idea to get rid of the old API system. However, I have some concern about how this has been tackled. In particular as far as I can see:
I'd like to discuss the topic during the summit because I think it is strategic for the evolution of GeoNode in the long run. |
Valuable and timely discussion here for the Summit next week. Comments based on pygeoapi viewpoint.
Having said this, whichever way the evolving GeoNode API is developed, it should be easy enough to build routes on top of pygeoapi for anything OGC API. |
Thanks @francbartoli @tomkralidis
From my point of view we shouldn't just disable old api versions for the sake of backward compatibility (but to offer /v1 /v2 /v3 depending on how the api develops.)
👍 I would like to know more about how far the development has progressed and what are the possibility with the auth layer. Nobody would prevent us from considering v2 as a technically improved version of v1 (tastypie -> DRF) and offering a later v3 which is more OpenAPI centric and based on geopyapi. |
First of all, thanks @afabiani for the proof of concept branch! It looks really good. On the catalogue perspective I see some possible solution keeping the data model while working with the new OGC APIs at the same time: For resource base, we can keep/extend the model to keep compatibility with the CSW endpoint (which should not go away in my opinion). We can then re-use the resource-base model as a pygeoapi backend to support OGC-API Records, in a similar way we do with pycsw. For the rest of OGC APIs I echo @tomkralidis opinion. |
Dear all,
thanks for the feedbacks.
For the time being the REST APIs are just an improvement which does not
impact the model and GeoNode core structure at all, neither touches the old
apis.
The idea is to transition from an api to another ones, but nothing prevents
the two apis to live together.
About the pygeoapi, as I already said before, my main concern is about the
GeoNode model structure. IMHO the backward compatibility with older
versions of GeoNode should (more or less) always taken into account.
At least there should be a way to move, without struggling too much, from a
model to another one.
The second concern is the amount of work to be done if we decide somehow to
try to get rid of the current GeoNode structure... I know we now have much
more experience, but rewriting GeoNode from scratch is not an option, at
least for us. That would mean that we won't have commercial support anymore
from entities like GeoSolutions.
Il giorno mer 2 dic 2020 alle ore 08:48 Angelos Tzotsos <
notifications@github.com> ha scritto:
… First of all, thanks @afabiani <https://github.com/afabiani> for the
proof of concept branch! It looks really good.
I also agree with @francbartoli <https://github.com/francbartoli> and
@tomkralidis <https://github.com/tomkralidis> that the new API should be
based on OAS3 if possible.
@gannebamm <https://github.com/gannebamm> yes, we should discuss how to
interact with pygeoapi during the summit next week.
On the catalogue perspective I see some possible solution keeping the data
model while working with the new OGC APIs at the same time: For resource
base, we can keep/extend the model to keep compatibility with the CSW
endpoint (which should not go away in my opinion). We can then re-use the
resource-base model as a pygeoapi backend to support OGC-API Records, in a
similar way we do with pycsw. For the rest of OGC APIs I echo @tomkralidis
<https://github.com/tomkralidis> opinion.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#6685 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJYARJNYTBLVLHOWGBOGALSSXWMFANCNFSM4UJDCTKQ>
.
--
==
GeoServer Professional Services from the experts! Visit http://goo.gl/it488V
for more information.
==
Ing. Alessio Fabiani
@alfa7691
Founder/Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A - 55054 Massarosa (LU) - Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 331 6233686
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
-------------------------------------------------------
Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE
2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si
precisa che ogni circostanza inerente alla presente email (il suo
contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è
riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il
messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra
operazione è illecita. Le sarei comunque grato se potesse darmene notizia.
This email is intended only for the person or entity to which it is
addressed and may contain information that is privileged, confidential or
otherwise protected from disclosure. We remind that - as provided by
European Regulation 2016/679 “GDPR” - copying, dissemination or use of this
e-mail or the information herein by anyone other than the intended
recipient is prohibited. If you have received this email by mistake, please
notify us immediately by telephone or e-mail.
|
@francesco Bartoli <francesco.bartoli@geobeyond.it> @angelos Tzotsos
<gcpp.kalxas@gmail.com>
I committed here
<399b420>
an
update to generate the Swagger OAS3 schema
Il giorno mer 2 dic 2020 alle ore 09:35 Alessio Fabiani <
notifications@github.com> ha scritto:
… Dear all,
thanks for the feedbacks.
For the time being the REST APIs are just an improvement which does not
impact the model and GeoNode core structure at all, neither touches the old
apis.
The idea is to transition from an api to another ones, but nothing prevents
the two apis to live together.
About the pygeoapi, as I already said before, my main concern is about the
GeoNode model structure. IMHO the backward compatibility with older
versions of GeoNode should (more or less) always taken into account.
At least there should be a way to move, without struggling too much, from a
model to another one.
The second concern is the amount of work to be done if we decide somehow to
try to get rid of the current GeoNode structure... I know we now have much
more experience, but rewriting GeoNode from scratch is not an option, at
least for us. That would mean that we won't have commercial support anymore
from entities like GeoSolutions.
Il giorno mer 2 dic 2020 alle ore 08:48 Angelos Tzotsos <
***@***.***> ha scritto:
> First of all, thanks @afabiani <https://github.com/afabiani> for the
> proof of concept branch! It looks really good.
> I also agree with @francbartoli <https://github.com/francbartoli> and
> @tomkralidis <https://github.com/tomkralidis> that the new API should be
> based on OAS3 if possible.
> @gannebamm <https://github.com/gannebamm> yes, we should discuss how to
> interact with pygeoapi during the summit next week.
>
> On the catalogue perspective I see some possible solution keeping the
data
> model while working with the new OGC APIs at the same time: For resource
> base, we can keep/extend the model to keep compatibility with the CSW
> endpoint (which should not go away in my opinion). We can then re-use the
> resource-base model as a pygeoapi backend to support OGC-API Records, in
a
> similar way we do with pycsw. For the rest of OGC APIs I echo
@tomkralidis
> <https://github.com/tomkralidis> opinion.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#6685 (comment)>,
> or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/AAJYARJNYTBLVLHOWGBOGALSSXWMFANCNFSM4UJDCTKQ
>
> .
>
--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V
for more information.
==
Ing. Alessio Fabiani
@alfa7691
Founder/Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A - 55054 Massarosa (LU) - Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 331 6233686
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
-------------------------------------------------------
Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE
2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si
precisa che ogni circostanza inerente alla presente email (il suo
contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è
riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il
messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra
operazione è illecita. Le sarei comunque grato se potesse darmene notizia.
This email is intended only for the person or entity to which it is
addressed and may contain information that is privileged, confidential or
otherwise protected from disclosure. We remind that - as provided by
European Regulation 2016/679 “GDPR” - copying, dissemination or use of this
e-mail or the information herein by anyone other than the intended
recipient is prohibited. If you have received this email by mistake, please
notify us immediately by telephone or e-mail.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#6685 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJYARJTQP6HF6UR3ZEZVPTSSX337ANCNFSM4UJDCTKQ>
.
--
==
GeoServer Professional Services from the experts! Visit http://goo.gl/it488V
for more information.
==
Ing. Alessio Fabiani
@alfa7691
Founder/Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A - 55054 Massarosa (LU) - Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 331 6233686
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
-------------------------------------------------------
Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE
2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si
precisa che ogni circostanza inerente alla presente email (il suo
contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è
riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il
messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra
operazione è illecita. Le sarei comunque grato se potesse darmene notizia.
This email is intended only for the person or entity to which it is
addressed and may contain information that is privileged, confidential or
otherwise protected from disclosure. We remind that - as provided by
European Regulation 2016/679 “GDPR” - copying, dissemination or use of this
e-mail or the information herein by anyone other than the intended
recipient is prohibited. If you have received this email by mistake, please
notify us immediately by telephone or e-mail.
|
As already said by @afabiani this is neither a proposal for the API of GeoNode 4, neither for a GeoNode "core". We wanted to make a step beyond the current one, experiment with new use cases as required by our clients which more and more ask for an extende REST interface (including for permissions, users management, etc.). Of course this API reflects somehow the underlying model (including the parts of it that we don't like much). I don't see any conflict with pygeoapi here. Nothing prevents, now and in the future, haning both the interfaces. We already have pycsw for CSW, we can havd pygeoapi for OGC API. What are your concerns here @francbartoli? |
I see that the proposal does not interfere with other APIs and therefore voted my +1. Nonetheless we should give developers and users a clear way to interact with GeoNode API-wise. Having many different APIs alongside could cause confusion and convolute the codebase. This is something we should keep in mind. |
I totally agree @gannebamm. Sometime users ask questions or requirements about the GeoNode "API", but then I discover they were talking about the OGC APis. Probably a dedciated section inside the docs might help to clarify the different exposed APIs. |
* [WIP] GeoNode API v2 - Prototype * [ref. #6388] Error when installing core GeoNode into virtual environment * - GeoNode REST APIs v2 - Swagger schema * [ref. #6388] Error when installing core GeoNode into virtual environment * - GeoNode REST API v2 : Map and MapLayers endpoints * - GeoNode REST API v2 : Adding workflow ResourceBase metadata fields * [Dependencies] Removing conflicts * - Minor fixes and improvements * - Improving ResourceBase REST api permissions * - Improve Dynamic REST Sorting/Filtering * - Expose more metadata fields * - Expose more polymorphic_ctype_id field for filtering * - Improve Metadata Fields serialization in order to make it searchable/filterable * - Updating style sheets * - Introducing "DynamicSearchFilter" exposing search_fields * Merge branch 'master' of https://github.com/GeoNode/geonode into rest_api_v2_proof_of_concept # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit. * - Allow gs proxy to parse workspace prefix dynamically * - Downgrade pyproj to 2.6.1 * Revert " - Downgrade pyproj to 2.6.1" This reverts commit a702740. * - Improve Dockerfile * [Issue #6414] Use Django storage API in delete_orphaned_* functions * [Issue #6414] Use Django storage API in geonode.qgis_server.tests.test_views * [Issue #6414] Use Django storage API when generating document thumbnails * [Issue #6414] Thumbnail generation fix for local storage * Add thumbnail convenience functions * Cleanup Django storage API changes * [Hardening] Minor improvements and error checks * [Minor] Headers and formatting files * - Adding "OAuth2Authentication" to the default REST APIs auth_classes * - Fix "get_perms" api issue with non existant keys * - Fix "get_perms" api issue with non existant keys * [APIs] superusers have always perms to change resources * [Dependencies] bump djangorestframework to >=3.1.0,<3.12.0 * - Improve IsOwnerOrReadOnly REST permission class * - Improve IsOwnerOrReadOnly REST permission class * - Improve IsOwnerOrReadOnly REST permission class * - Fix Recenet Activity List for Documents * [Hardening] - Recenet Activity List for Documents error when actor is None * [Frontend] Monitoring: Bump "node-sass" to version 4.14.1 * [Frontend] Bump jquery to version 3.5.1 * [Fixes: #6519] Bump jquery to 3.5.1 (#6526) (cherry picked from commit e532813) # Conflicts: # geonode/static/lib/css/assets.min.css # geonode/static/lib/css/bootstrap-select.css # geonode/static/lib/css/bootstrap-table.css # geonode/static/lib/js/assets.min.js # geonode/static/lib/js/bootstrap-select.js # geonode/static/lib/js/bootstrap-table.js # geonode/static/lib/js/leaflet-plugins.min.js # geonode/static/lib/js/leaflet.js # geonode/static/lib/js/moment-timezone-with-data.js # geonode/static/lib/js/underscore.js * Merge branch 'master' of https://github.com/GeoNode/geonode into rest_api_v2_proof_of_concept # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit. * [Hardening] Re-create the map thumbnail only if it is missing * Fixes error with GDAL 3.0.4 due to a breaking change on GDAL (https://code.djangoproject.com/ticket/30645) * Fixes error with GDAL 3.0.4 due to a breaking change on GDAL (https://code.djangoproject.com/ticket/30645) * - Introducing REST APIs for "Docuemnts" resources too * - Bump django_mapstore_adapter to 2.0.6 / Bump django-geonode-mapstore-client to 2.0.9 * - Travis and LGTM fixes * - Swagger OAS3 * - Adding REST API v2 Test Suite * - Implementing API v2 "extent" filter * - Travis and LGTM fixes Co-authored-by: Matthew Northcott <matthewnorthcott@catalyst.net.nz> Co-authored-by: Toni <toni.schoenbuchner@csgis.de>
GNIP-79: GeoNode REST APIs (v2)
Overview
Create a real REST API for GeoNode resources, which is:
Tastypie
based GeoNode APIsProposed By
@afabiani
@giohappy
Assigned to Release
This proposal is for GeoNode 3.2.
State
Motivation
We would like to transition out from old
Tastypie
based GeoNode APIs, or, at least, provide a more lightweight, REST compliant and secure set of API endpoints.The proposal is to collect all those endpoints under the
/api/v2
URI prefix.Proposal
Define a common REST router under
geonode.api
Define APIs for each GeoNode module
As an instance for
geonode.base.api
we can easily plugResourceBase
andUsers
routes as follows:Backwards Compatibility
NO Backwards Compatible.
Future evolution
Tastypie
Feedback
Update this section with relevant feedbacks, if any.
Voting
Project Steering Committee:
Links
The text was updated successfully, but these errors were encountered: