{"id":23728479,"url":"https://github.com/leeturner/daily-rover-api","last_synced_at":"2025-07-20T20:06:51.825Z","repository":{"id":38019562,"uuid":"370240738","full_name":"leeturner/daily-rover-api","owner":"leeturner","description":"A Spring Boot Kotlin service to access the NASA mars rover image API","archived":false,"fork":false,"pushed_at":"2024-02-09T18:21:32.000Z","size":112,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-23T19:37:01.041Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leeturner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-24T05:43:37.000Z","updated_at":"2022-01-09T17:08:58.000Z","dependencies_parsed_at":"2024-01-22T23:25:25.675Z","dependency_job_id":"85a86df7-a56a-4148-9b05-0cc9c5b42867","html_url":"https://github.com/leeturner/daily-rover-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/leeturner/daily-rover-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeturner%2Fdaily-rover-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeturner%2Fdaily-rover-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeturner%2Fdaily-rover-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeturner%2Fdaily-rover-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leeturner","download_url":"https://codeload.github.com/leeturner/daily-rover-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leeturner%2Fdaily-rover-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266189677,"owners_count":23890065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-31T01:51:17.869Z","updated_at":"2025-07-20T20:06:51.808Z","avatar_url":"https://github.com/leeturner.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# daily-rover-api\nA Spring Boot Kotlin service to access the NASA mars rover image API by earth date.  This will return the photos for all rovers on a given earth date\n\nYou can find out more about the NASA Mars rover image API and get your own API key [here](https://api.nasa.gov) and [here](https://github.com/chrisccerami/mars-photo-api)\n\n## Usage/Examples\n\nThis rest API allows you to pass in a date and will return the images for all the Mars rovers for the date you passed.  The date is passed on the url as shown below:\n\n```\nGET http://localhost:8080/daily-rover/v1/photos/2015-06-03\n```\n\nThis will return a `json` payload with all the photos across all the Mars rovers that were active on Mars for that day.  A small example of the payload is below:\n\n```json\n{\n    \"photos\": [\n        {\n            \"id\": 102685,\n            \"sol\": 1004,\n            \"camera\": {\n                \"id\": 20,\n                \"name\": \"FHAZ\",\n                \"rover_id\": 5,\n                \"full_name\": \"Front Hazard Avoidance Camera\"\n            },\n            \"img_src\": \"http://mars.jpl.nasa.gov/msl-raw-images/proj/msl/redops/ods/surface/sol/01004/opgs/edr/fcam/FLB_486615455EDR_F0481570FHAZ00323M_.JPG\",\n            \"earth_date\": \"2015-06-03\",\n            \"rover\": {\n                \"id\": 5,\n                \"name\": \"Curiosity\",\n                \"landing_date\": \"2012-08-06\",\n                \"launch_date\": \"2011-11-26\",\n                \"status\": \"active\"\n            }\n        },\n        {\n            \"id\": 102686,\n            \"sol\": 1004,\n            \"camera\": {\n                \"id\": 20,\n                \"name\": \"FHAZ\",\n                \"rover_id\": 5,\n                \"full_name\": \"Front Hazard Avoidance Camera\"\n            },\n            \"img_src\": \"http://mars.jpl.nasa.gov/msl-raw-images/proj/msl/redops/ods/surface/sol/01004/opgs/edr/fcam/FRB_486615455EDR_F0481570FHAZ00323M_.JPG\",\n            \"earth_date\": \"2015-06-03\",\n            \"rover\": {\n                \"id\": 5,\n                \"name\": \"Curiosity\",\n                \"landing_date\": \"2012-08-06\",\n                \"launch_date\": \"2011-11-26\",\n                \"status\": \"active\"\n            }\n        },\n        {\n            \"id\": 102842,\n            \"sol\": 1004,\n            \"camera\": {\n                \"id\": 21,\n                \"name\": \"RHAZ\",\n                \"rover_id\": 5,\n                \"full_name\": \"Rear Hazard Avoidance Camera\"\n            },\n            \"img_src\": \"http://mars.jpl.nasa.gov/msl-raw-images/proj/msl/redops/ods/surface/sol/01004/opgs/edr/rcam/RLB_486615482EDR_F0481570RHAZ00323M_.JPG\",\n            \"earth_date\": \"2015-06-03\",\n            \"rover\": {\n                \"id\": 5,\n                \"name\": \"Curiosity\",\n                \"landing_date\": \"2012-08-06\",\n                \"launch_date\": \"2011-11-26\",\n                \"status\": \"active\"\n            }\n        },\n        {\n            \"id\": 102843,\n            \"sol\": 1004,\n            \"camera\": {\n                \"id\": 21,\n                \"name\": \"RHAZ\",\n                \"rover_id\": 5,\n                \"full_name\": \"Rear Hazard Avoidance Camera\"\n            },\n            \"img_src\": \"http://mars.jpl.nasa.gov/msl-raw-images/proj/msl/redops/ods/surface/sol/01004/opgs/edr/rcam/RRB_486615482EDR_F0481570RHAZ00323M_.JPG\",\n            \"earth_date\": \"2015-06-03\",\n            \"rover\": {\n                \"id\": 5,\n                \"name\": \"Curiosity\",\n                \"landing_date\": \"2012-08-06\",\n                \"launch_date\": \"2011-11-26\",\n                \"status\": \"active\"\n            }\n        }\n    ]\n}\n```\nThe payload is often quite large due to the number of photos taken by the rovers - especially the more recent rovers like the [Perseverance](https://mars.nasa.gov/mars2020/)\n\nAlong side the photos endpoint there is also a rovers endpoint that returns the internal data the service maintains about the NASA rovers on Mars:\n\n```\nGET http://localhost:8080/daily-rover/v1/rovers/\n```\n\nThis will currently return the following payload:\n\n```json\n[\n  {\n    \"id\": 1,\n    \"name\": \"spirit\",\n    \"landingDate\": \"2004-01-04\",\n    \"launchDate\": \"2003-06-10\",\n    \"maxDate\": \"2010-03-21\",\n    \"maxSol\": 2208,\n    \"status\": \"complete\"\n  },\n  {\n    \"id\": 3,\n    \"name\": \"opportunity\",\n    \"landingDate\": \"2004-01-25\",\n    \"launchDate\": \"2003-07-07\",\n    \"maxDate\": \"2018-06-11\",\n    \"maxSol\": 5111,\n    \"status\": \"complete\"\n  },\n  {\n    \"id\": 2,\n    \"name\": \"curiosity\",\n    \"landingDate\": \"2012-08-06\",\n    \"launchDate\": \"2011-11-26\",\n    \"maxDate\": null,\n    \"maxSol\": null,\n    \"status\": \"active\"\n  },\n  {\n    \"id\": 4,\n    \"name\": \"perseverance\",\n    \"landingDate\": \"2021-02-18\",\n    \"launchDate\": \"2020-07-30\",\n    \"maxDate\": null,\n    \"maxSol\": null,\n    \"status\": \"active\"\n  }\n]\n```\n\nThere are some IntelliJ http request files available in the `/src/test/resources/http` folder if you want to have a play around with the endpoints.\n## Tech Stack\n\nThis service uses the following languages, frameworks and libraries:\n\n* [Kotlin](https://kotlinlang.org)\n* [Spring Boot](https://github.com/spring-projects/spring-boot)\n* [Spring Rety](https://github.com/spring-projects/spring-retry)\n* [kotlin-logging](https://github.com/MicroUtils/kotlin-logging)\n\n### Testing\n\n* [Strikt](https://strikt.io)\n* [mockk](https://github.com/mockk/mockk)\n* [springmockk](https://github.com/Ninja-Squad/springmockk)\n* [Junit](https://github.com/junit-team/junit5)\n\n## Contributing\n\nContributions are always welcome!  See the [TODO.md](TODO.md) for some ideas on how you can contribute to this project.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for ways to get started.\n\nPlease adhere to this project's [Code Of Conduct](CONTRIBUTING.md).\n\n## Authors\n\n- [@leeturner](https://www.github.com/leeturner)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleeturner%2Fdaily-rover-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleeturner%2Fdaily-rover-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleeturner%2Fdaily-rover-api/lists"}