apache / streampipes

Apache StreamPipes - A self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams.
https://streampipes.apache.org
Apache License 2.0
566 stars 174 forks source link

Extend StreamPipes API by a health-check endpoint #1101

Closed bossenti closed 1 year ago

bossenti commented 1 year ago

Body

Provide an additional endpoint to the StreamPipes API that just returns a 200 status code and some general information, e.g., the StreamPipes version running when the user is authenticated to access the API.

Mentoring

As this ticket is marked as good first issue: @dominikriemer or @tenthe are happy to provide help for getting started, just tag (one of) them if you want to start working on this issue and need some help.

StreamPipes Committer

I acknowledge that I am a maintainer/committer of the Apache StreamPipes project.

deexidee commented 1 year ago

Hi @dominikriemer @tenthe ! I'm new to open source and this issue seems to me as a good beginning point. Could you please give me some hints on where to start?

tenthe commented 1 year ago

Hi @deexidee, welcome to the StreamPipes project :)

As a first step, I would suggest that you start by setting up the development environment. You can find a description in [1]. Please let me know if you have any questions about the setup process.

StreamPipes has two main types of services, the service core [2] which contains the backend of the application, and extension services [3]. I suggest that you first take a look at the REST API of the core service. Here is a link to the module with all the REST endpoints [4]. You could add the endpoint described in this issue there.

Don't hesitate to write us if you have any questions.

[1] https://cwiki.apache.org/confluence/display/STREAMPIPES/Core [2] https://github.com/apache/streampipes/tree/dev/streampipes-service-core [3] https://github.com/apache/streampipes/tree/dev/streampipes-service-extensions [4] https://github.com/apache/streampipes/tree/dev/streampipes-rest

deexidee commented 1 year ago

@tenthe @bossenti Thanks for the guidance. I've checked a few classes at the REST API and it seems that the method getVersionInfo in "Version" class implements the same functionality as in the issue description. Should I rename the method, add the same method with a different name to this class, or add it somewhere else?

tenthe commented 1 year ago

Hi @deexidee, oh yes you are right. I think we can use the existing endpoint for the functionlality described in this issue. @bossenti what do you think? My suggestion would be to close this issue.

Another issue in the REST API to get started with, is to remove some deprecated API endpoints from the REST interface. I'd suggest to remove all the endpoints marked with @Deprecated(since = "0.71.0", forRemoval = true). The first step would be to create an issue for that. Then we should check if the API is no longer used in the UI Finally we can remove the endpoints. I will be happy to assist you. You can provide a PR and we can discuss the details there.

bossenti commented 1 year ago

One aspect that we could address within this issue nevertheless is to ensure that the endpoint you've detected appears in our swagger doc Apart from that, +1

deexidee commented 1 year ago

Ok, I'll check it and then start with deprecated endpoints. Another question, what do I need to do to assign the issue to myself?

bossenti commented 1 year ago

Great, thank you 🙏🏼 I just assigned you Guess that only project members can do so

deexidee commented 1 year ago

Suppose I need permission to push branches to the repo

tenthe commented 1 year ago

Hey, you need to make a fork of the repo and then provide a Pull Requst with the changes

deexidee commented 1 year ago

Sorry for missing for a while, had a busy week. I made the PR, feel free to review :)

tenthe commented 1 year ago

Cool, thanks. I'll have a look at it.