{"id":47666276,"url":"https://github.com/memphis-tools/dummy_fastapi_flask_blog_clients","last_synced_at":"2026-04-02T11:59:15.812Z","repository":{"id":345906198,"uuid":"811939080","full_name":"memphis-tools/dummy_fastapi_flask_blog_clients","owner":"memphis-tools","description":"Dummy REST API clients for learning purposes. We request the FastAPI's API served by the dummy project so called \"dummy_fastapi_flask_blog_app\". ","archived":false,"fork":false,"pushed_at":"2026-03-21T09:22:52.000Z","size":415,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-21T23:42:20.164Z","etag":null,"topics":["bash","bats","java","javascript","jq","python"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/memphis-tools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-07T15:52:27.000Z","updated_at":"2026-03-21T09:22:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/memphis-tools/dummy_fastapi_flask_blog_clients","commit_stats":null,"previous_names":["memphis-tools/dummy_fastapi_flask_blog_clients"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/memphis-tools/dummy_fastapi_flask_blog_clients","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memphis-tools%2Fdummy_fastapi_flask_blog_clients","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memphis-tools%2Fdummy_fastapi_flask_blog_clients/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memphis-tools%2Fdummy_fastapi_flask_blog_clients/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memphis-tools%2Fdummy_fastapi_flask_blog_clients/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memphis-tools","download_url":"https://codeload.github.com/memphis-tools/dummy_fastapi_flask_blog_clients/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memphis-tools%2Fdummy_fastapi_flask_blog_clients/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31305971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"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":["bash","bats","java","javascript","jq","python"],"created_at":"2026-04-02T11:59:15.328Z","updated_at":"2026-04-02T11:59:15.807Z","avatar_url":"https://github.com/memphis-tools.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Bats Test](https://github.com/memphis-tools/dummy_fastapi_flask_blog_clients/actions/workflows/bats_test.yml/badge.svg)](https://github.com/memphis-tools/dummy_fastapi_flask_blog_clients/actions/workflows/bats_test.yml)\n\n# DUMMY REST API CLIENTS FOR LEARNING PURPOSES\n**These are dummy clients for a dummy blog application.**\n\nWe set several clients using different languages for learning purposes. Bash is the first one, others are coming.\n\nThe \"dummy blog application\" project is clone as a submodule.\n\nThis \"dummy blog application\" Github project is at: https://github.com/memphis-tools/dummy_fastapi_flask_blog_app\n\n## TECHNOLOGIES\n\nbats \u003e= 1.8.2-1\n\njq =\u003e 1.6-14\n\n## HOW USE IT\n\nClone the repository:\n\n    git clone --recurse-submodules https://github.com/memphis-tools/dummy_fastapi_flask_blog_client.git\n\n  or\n\n    git clone --recurse-submodules git@github.com:memphis-tools/dummy_fastapi_flask_blog_clients.git\n\n  then\n\n    cd dummy_fastapi_flask_blog_client\n\nEnsure the submodule project is refreshed:\n\n    git submodule update --remote\n\nSet a local .env file with something like this:\n\n    SCOPE=\"local_test\"\n    POSTGRES_USER=\"postgres\"\n    POSTGRES_PASSWORD=\"postgres\"\n    POSTGRES_TEST_DB_NAME=\"test_dummy_blog\"\n    POSTGRES_PORT=\"5432\"\n    POSTGRES_HOST=\"db\"\n    ADMIN_LOGIN=\"admin\"\n    ADMIN_PASSWORD=\"@pplepie94\"\n    ADMIN_EMAIL=\"admin@localhost.fr\"\n    TEST_USER_PWD=\"@pplepie94\"\n    SECRET_KEY=\"thisIsADummySecretKeyJustSetForFastApiToRun\"\n    API_URL=\"http://fastapi:8000/api/v1\"\n    DUMMY_USERNAME=\"donald\"\n    DUMMY_PASSWORD=\"@pplepie94\"\n\nAs the clients need a running dummy blog api, you first clone the repository and build the services:\n\n    docker compose -f docker-compose.yml up -d --build\n\n  ![Screenshot](illustrations/dummy-ops_api_client_docker.png)\n\nThe application will be build with dummy datas to be tested (users, books etc).\n\nRun the BASH client. We use credentials from a dummy user already created (donald / @pplepie94).\n\n    ./api_clients/bash/dummy-ops_api_client.sh -u donald\n\n  ![Screenshot](illustrations/dummy-ops_api_client_bash.png)\n\n## HOW RUN TESTS LOCALLY\n\n**Run bats tests against the shell client**:\n\n    docker exec bats bats 01-test_dummy_fastapi_token_routes.bats\n\n    docker exec bats bats 02-test_dummy_fastapi_book_routes.bats\n\n    .., and so on (see ./api_clients/bash/ folder)\n\n## USEFULL LINKS\n\nFor git submodules:\n\nhttps://git-scm.com/book/en/v2/Git-Tools-Submodules\n\nFor jq:\n\nhttps://stackoverflow.com/questions/63739082/jq-accepts-invalid-json-input-when-it-should-throw-an-error\n\nhttps://stackoverflow.com/questions/18592173/select-objects-based-on-value-of-variable-in-object-using-jq\n\nhttps://stackoverflow.com/questions/39139107/how-to-format-a-json-string-as-a-table-using-jq\n\nhttps://unix.stackexchange.com/questions/750864/how-to-format-a-json-string-as-a-table-using-jq\n\nFor bats:\n\nhttps://bats-core.readthedocs.io/en/stable/docker-usage.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemphis-tools%2Fdummy_fastapi_flask_blog_clients","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemphis-tools%2Fdummy_fastapi_flask_blog_clients","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemphis-tools%2Fdummy_fastapi_flask_blog_clients/lists"}