We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

geoserverx - a new CLI and library to interact with GeoServer

00:00

Formal Metadata

Title
geoserverx - a new CLI and library to interact with GeoServer
Title of Series
Number of Parts
156
Author
Contributors
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
geoserverx is a modern Python package that provides an efficient and scalable way to interact with Geoserver REST APIs. It leverages the asynchronous capabilities of Python to offer a high-performance and reliable solution for managing Geoserver data and services. With geoserverx, users can easily access and modify data in Geoserver, such as uploading and deleting shapefiles, publishing layers, creating workspaces, styles, etc. . The package supports asynchronous requests along with synchronous method to the Geoserver REST API, which enables users to perform multiple tasks simultaneously, improving performance and reducing wait times. Apart from being implemented in Python Projects, geoserverx also provides CLI support for all of it's operations. Which makes it useful for people who want to avoid Python all-together. In this talk we discover for the very first time about how geoserverx work and underlying code ideology. Along with that we'll also spread some light on upcoming modules to be integrated in geoserverx.
Keywords
127
Streaming mediaProjective planeGoodness of fitMusical ensemble
Representational state transferServer (computing)Figurate numberGeometryLecture/ConferenceComputer animation
Functional (mathematics)Graph coloringCodeData managementResultantContext awarenessRepresentational state transferLibrary (computing)Server (computing)Term (mathematics)GeometryComputer animation
Installation artServer (computing)Computer animation
GEDCOMLine (geometry)Interface (computing)Template (C++)Representational state transferCommon Language InfrastructureWeb 2.0Buffer overflowServer (computing)Functional (mathematics)PasswordGeometryCASE <Informatik>Type theoryDefault (computer science)Data managementClient (computing)Context awarenessSynchronizationLibrary (computing)DatabaseDataflowUniform resource locatorSource codeLecture/ConferenceComputer animation
Gamma functionLeast squaresComputer-assisted translationComputer animation
Transcript: English(auto-generated)
Good afternoon, everyone. I'm here to represent an interesting project that we are working on with GeoBeyond. It's called GeoServerX, which is a modern Python and CLI package to interact with GeoServer. Just an overview, and one of the reasons why we decided to do this at GeoBeyond is also that we worked with GeoServer a lot.
And one of the things that we wanted to do is figure out a way that we can send a lot of asynchronous requests to GeoServer using REST APIs. And that's how we started to do it. So we'll see what it is, why we created it, the layout of it, how you can use it, and where are we heading from here. So what it is, in a very simple term,
you send a request either as a Python package or via CLI, which is GSX. And then you send the request to GeoServer as a REST API, get the data back, and then that's all. So we support synchronous and asynchronous requests. We also have a context manager approach to do things. And we are trying to also standardize the results
with color coding and, obviously, the codes. And then we are also providing command line interface to execute these same functions that we are doing. The layout is quite simple. We have built everything in poetry. And the dependencies are HTTPX, which is essentially the main library that we are using to send requests.
We are using pydantic, typer, rich, and the document is built with mkdocs. How to use it? It's very simple. You just install it by doing pip install geoserverx. And you can then either use the synchronous way or asynchronous way, depending upon what you want to do with it.
The documentation is quite robust. We are trying to cover everything that we actually also use in our own use case every day. So this is the synchronous way. For example, here, we are getting all the workspaces. This is an asynchronous way, where we are just using the asynchronous geoserverx client,
also as a context manager. So we make sure that we are closing the client properly. Then we also have a command line support. So you can just do gsx. And you will see all the things that we are doing with the Python library, also as a CLI. Here are a few of the things that we are doing.
And just like that, if you type gsx workspaces, and with the default, let's say default username, password, and the URL, you will get a reply like this. And you can also pass your own username, password, and URL on the fly. So where are we heading? We are trying to translate all the GeoServer REST APIs. We are designing a better CLI with commands and subcommands.
One of the interesting things that we are doing is introducing Swiss knife functionalities. That means we are trying to create overflows and web flows, which will allow you to do multiple things in a single REST request. So for a simple example, it can
be that you can send the data to your database, and also create layer, and also assign style to it in a single API. So that's what we are trying to do right now with the geoserverx. And that's all from my end. Thanks a lot. You can reach out to either me or to Francesco. And you can also find the geoserverx live on GitHub.
So feel free to fork. Feel free to open an issue. We are more than happy to work on it. Thank you. So thanks a lot, Christian. Sounds very interesting.