{"id":22423519,"url":"https://github.com/qbbr/blog-backend-flask","last_synced_at":"2026-04-20T19:32:23.055Z","repository":{"id":136495419,"uuid":"291405971","full_name":"qbbr/blog-backend-flask","owner":"qbbr","description":"Blog REST API on Flask","archived":false,"fork":false,"pushed_at":"2020-11-21T06:59:17.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-24T13:42:38.849Z","etag":null,"topics":["backend","flask","python3","rest-api"],"latest_commit_sha":null,"homepage":"","language":"Python","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/qbbr.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":"2020-08-30T05:24:15.000Z","updated_at":"2020-11-21T06:59:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"cf03780c-6342-42eb-84f2-5b3779f4198f","html_url":"https://github.com/qbbr/blog-backend-flask","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qbbr/blog-backend-flask","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbbr%2Fblog-backend-flask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbbr%2Fblog-backend-flask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbbr%2Fblog-backend-flask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbbr%2Fblog-backend-flask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qbbr","download_url":"https://codeload.github.com/qbbr/blog-backend-flask/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbbr%2Fblog-backend-flask/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32062327,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["backend","flask","python3","rest-api"],"created_at":"2024-12-05T18:11:39.319Z","updated_at":"2026-04-20T19:32:23.036Z","avatar_url":"https://github.com/qbbr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# blog-backend-flask\n\n![API Tests](https://github.com/qbbr/blog-backend-flask/workflows/API%20Tests/badge.svg)\n\nBlog REST API on Flask\n\nsee [blog-frontend-vuejs](https://github.com/qbbr/blog-fontend-vuejs)\n\n## depends\n\n * [python3](https://www.python.org/)\n * [python3-venv](https://docs.python.org/3/library/venv.html)\n * see [requirements.txt](requirements.txt)\n\n## run\n\n```bash\npython3 -m venv venv\n . venv/bin/activate\npip install -r requirements.txt\n. .env.dev\nflask init-db\nflask run\n```\n\n## routes\n\n| route               | method     | description                      | JWT required |\n|---------------------|------------|----------------------------------|--------------|\n| /register/          | POST       | create new user                  |              |\n| /login/             | POST       | login                            |              |\n| /user/profile/      | GET        | get user profile                 | Y            |\n| /user/profile/      | PUT, PATCH | update user profile              | Y            |\n| /user/profile/      | DELETE     | delete user profile              | Y            |\n| /posts/             | GET        | get all posts \\w pagination      |              |\n| /post/{slug}/       | GET        | get post by slug                 |              |\n| /tags/              | GET        | get all tags                     |              |\n| /user/posts/        | GET        | get all user posts \\w pagination | Y            |\n| /user/posts/        | DELETE     | delete all user posts            | Y            |\n| /user/post/         | POST       | create user post                 | Y            |\n| /user/post/{id}/    | GET        | get user post by id              | Y            |\n| /user/post/{id}/    | PUT, PATCH | update user post by id           | Y            |\n| /user/post/{id}/    | DELETE     | delete user post by id           | Y            |\n| /user/post/md2html/ | POST       | convert markdown to html         | Y            |\n\n## tests\n\n```bash\npython -m pytest\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqbbr%2Fblog-backend-flask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqbbr%2Fblog-backend-flask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqbbr%2Fblog-backend-flask/lists"}