{"id":37197306,"url":"https://github.com/kozaktomas/universal-store-api","last_synced_at":"2026-01-14T22:56:18.754Z","repository":{"id":39867483,"uuid":"438778001","full_name":"kozaktomas/universal-store-api","owner":"kozaktomas","description":"Create your backend API just with YAML! Define, validate and store your data easily!","archived":false,"fork":false,"pushed_at":"2024-06-23T15:39:34.000Z","size":127,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-06-23T16:49:31.343Z","etag":null,"topics":["api","configuration","rest-api","s3","yaml"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kozaktomas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-15T21:28:27.000Z","updated_at":"2024-06-23T15:39:37.000Z","dependencies_parsed_at":"2024-06-19T13:44:33.754Z","dependency_job_id":null,"html_url":"https://github.com/kozaktomas/universal-store-api","commit_stats":{"total_commits":25,"total_committers":3,"mean_commits":8.333333333333334,"dds":0.12,"last_synced_commit":"f61a0a1782502a0b9cbf5196eaee7c56b0f47eed"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kozaktomas/universal-store-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaktomas%2Funiversal-store-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaktomas%2Funiversal-store-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaktomas%2Funiversal-store-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaktomas%2Funiversal-store-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kozaktomas","download_url":"https://codeload.github.com/kozaktomas/universal-store-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kozaktomas%2Funiversal-store-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28437412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T22:37:52.437Z","status":"ssl_error","status_checked_at":"2026-01-14T22:37:31.496Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","configuration","rest-api","s3","yaml"],"created_at":"2026-01-14T22:56:18.044Z","updated_at":"2026-01-14T22:56:18.727Z","avatar_url":"https://github.com/kozaktomas.png","language":"Go","readme":"# USA! - Universal store API\n\n[![Go](https://github.com/kozaktomas/universal-store-api/actions/workflows/go.yml/badge.svg)](https://github.com/kozaktomas/universal-store-api/actions/workflows/go.yml)\n\nExtremely easy way how to create REST API. All you need to do is create a configuration file with definitions of your\nAPI and prepare backend to store all of these data (multiple backends supported). Then you can simply run it anywhere\nbecause USA is just one small binary file (also shipped as Docker image).\n\n## Example of API configuration file:\n\n```yaml\n- name: people\n  api:\n    client: \"domain.com\"    # value for CORS - optional\n    bearer: \"xyz\"           # API auth\n    limits: # API rate limits\n      list: \"0\"             # unlimited\n      get: \"0\"              # unlimited\n      put: \"5m\"             # 5 requests / minute [s,m,h,d - available]\n      delete: \"-1\"          # endpoint disabled\n  fields:\n    firstname:\n      type: \"string\"\n      required: false\n    lastname:\n      type: \"string\"\n      required: true\n      min: 1                # min length of lastname field\n      max: 50               # max length of lastname field\n    email:\n      type: \"string\"\n      rule: \"email\"         # field must contain valid email address\n      required: true\n```\n\n## Run the app\n\n```bash\n# use config file with memory store\n./universal-store-api run path/to/config.yml mem \n```\n\n## HTTP API\n\n### Create entity\n\n```http request\nPUT http://localhost:8080/people\nAuthorization: Bearer xyz\nContent-Type: application/json\n\n{\n  \"firstname\": \"tomas\",\n  \"lastname\": \"kozak\",\n  \"email\": \"email@talko.cz\"\n}\n```\n\n### Get list of entities\n\n```http request\nGET http://localhost:8080/people\nAuthorization: Bearer xyz\n```\n\n### Get entity detail\n\n```http request\nGET http://localhost:8080/people/[ENTITY-ID]\nAuthorization: Bearer xyz\n```\n\n### Delete entity\n\n```http request\nDELETE http://localhost:8080/people/[ENTITY-ID]\nAuthorization: Bearer xyz\n```\n\n## Current limitations\n\nUSA does not support pagination. It's not recommended using USA for project with more than 1000 entities. \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkozaktomas%2Funiversal-store-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkozaktomas%2Funiversal-store-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkozaktomas%2Funiversal-store-api/lists"}