This is an online podcast library service that allows users to browse and stream podcasts from a variety of sources. The service is written in Java 11 and uses Spring Boot for the application framework, Gradle for the build system, and GraphQL for the API.
Gradle 6.5 or later
To build the service, run the following command from the root directory of the project:
gradle build
gradle bootRun
The service will start up on port 8080 by default.
The service exposes a GraphQL API at http://localhost:8080/api/v1/sample.
Example of GraphQL query that retrieves a list of podcasts:
query {
podcasts {
title
description
genre
language
publisher
imageUrl
websiteUrl
feedUrl
explicit
episodes {
title
description
duration
releasedAt
audioUrl
}
}
}
And here is an example GraphQL mutation that adds a new podcast to the library:
mutation { addPodcast(input: { title: "The Daily" description: "This is a daily news podcast from The New York Times, delivering the day's top stories in a concise, conversational format." genre: "News" language: "English" publisher: "The New York Times" imageUrl: "https://www.example.com/podcasts/the-daily/image.jpg" websiteUrl: "https://www.example.com/podcasts/the-daily" feedUrl: "https://www.example.com/podcasts/the-daily/feed.xml" explicit: false }) { title } }