Giter Club home page Giter Club logo

core-api's Introduction

Streamr Core API

CI & CD

RESTful API containing the backend for Streamr Core. With the Streamr Network now fully decentralized, the only remaining features in this centralized API are related to the Marketplace:

  • Creating and listing products on the Streamr Marketplace
  • Managing the mapping between products and streams (what streams are in what products)

The Marketplace will become fully decentralized, so this API is being phased out in the near future.

The application uses the Grails web framework and runs on Java VM.

Dependencies

Tools

  • Java 8
  • Grails 2.5.6
  • node.js ^16.0.0 (for e2e tests)
  • npm

A convenient way of installing and managing multiple versions of Grails is SDKMAN!.

Service dependencies

Additional services are required to run this web application. The easiest way to get them all up and running (for development purposes) is to use the streamr-docker-dev tool we provide.

You might also want to run the Core frontend.

Building and running

  1. Ensure you have the dependencies listed under Dependencies > Tools installed.

  2. Clone this repo

  3. Run make start if you are using the recommended tool streamr-docker-dev. Otherwise make sure all services dependencies are running and the the web applications is properly configured to connect to them.

  4. Start the backend application

make run

CI

The project uses GitHub Actions to automatically run tests for each commit to main and pull requests.

Docker

A Docker image is automatically built and pushed to DockerHub when commits are pushed to branch main.

IDE

We provide sensible default configurations for IntelliJ IDEA but project can be developed with other IDEs as well.

Testing

  • To run unit tests only, use make test-unit
  • To run integration tests only, use make test-integration
  • To run end-to-end REST API tests, do make test-e2e
  • To run unit, integration, and e2e tests use make test

These are also available as pre-shared run configurations if you use IntelliJ IDEA.

Core API

This codebase comprises two logical parts:

  • API which allows users to create and manage streams, products, and other Streamr resources. The API controllers and services are mainly written in Groovy and use the Grails web framework.

When you run the app with grails run-app, most changes to source code files are automatically hot reloaded into the running JVM process.

Useful resources

License

This software is open source, and dual licensed under AGPLv3 and an enterprise-friendly commercial license.

core-api's People

Contributors

aapzu avatar daisydomergue avatar dependabot[bot] avatar fonty1 avatar harbu avatar hpihkala avatar isentrope1 avatar jtakalai avatar kare avatar kschzt avatar mikhaelsantos avatar mkeating avatar mondoreale avatar mthambipillai avatar teogeb avatar timoxley avatar tumppi avatar yaruno avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

core-api's Issues

API Endpoint /products has empty streams array

Current result
The API call to /products returns products, but the streams array of each product item is always empty. The API Explorer says, the streams array should contain stream IDs.

Expected result
API Endpoint /products returns stream IDs contained in the product.

Some streams with empty content

Current result
There are currently over 100 streams that return an empty content when called the /data/partitions/0/last endpoint. E.g:

All of them are valid streams.

Some streams do not deliver any content at the first endpoint call. The stream data is returned when the request is repeated again and again. Another streams never get content.

Expected result
All streams should return data content.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.