{"id":14965426,"url":"https://github.com/davidbrend/api-test","last_synced_at":"2026-02-15T08:34:13.598Z","repository":{"id":208201201,"uuid":"721033898","full_name":"davidbrend/api-test","owner":"davidbrend","description":"Test Project REST API built with Appite, Swagger, Docker, PHP 8.1, and Nette 3.1, offering CRUD operations for products. Planned features include JWT Bearer token authentication, caching, advanced filtering, and PHP Unit testing, highlighting the significance of versioning for compatibility.","archived":false,"fork":false,"pushed_at":"2023-11-21T15:35:52.000Z","size":146,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-10T11:08:13.145Z","etag":null,"topics":["api","apitte","nette"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/davidbrend.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}},"created_at":"2023-11-20T08:17:35.000Z","updated_at":"2023-11-21T15:33:45.000Z","dependencies_parsed_at":"2023-11-20T10:28:15.739Z","dependency_job_id":"35a443f0-b3cb-417b-8fd1-1bb6642f9df5","html_url":"https://github.com/davidbrend/api-test","commit_stats":null,"previous_names":["bongyseek/api-test"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davidbrend/api-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidbrend%2Fapi-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidbrend%2Fapi-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidbrend%2Fapi-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidbrend%2Fapi-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidbrend","download_url":"https://codeload.github.com/davidbrend/api-test/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidbrend%2Fapi-test/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29473718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T06:58:05.414Z","status":"ssl_error","status_checked_at":"2026-02-15T06:58:05.085Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["api","apitte","nette"],"created_at":"2024-09-24T13:34:44.681Z","updated_at":"2026-02-15T08:34:13.582Z","avatar_url":"https://github.com/davidbrend.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Test project REST API\n## APITTE Project with Swagger, Docker, PHP 8.1 and Nette 3.1\n\nThis project is a REST API built with Apitte, Docker, PHP 8.1, and Nette 3.1.\n## Endpoints:\n- `/api/v1/product/all`: Get all products with filter (query string)\n- `/api/v1/product/one`: Get a single product by ID (query string)\n- `/api/v1/product/delete`: Delete a product by ID (query string)\n- `/api/v1/product/new`: Create a new product (json body)\n- `/api/v1/product/update`: Update a product by ID (json body)\n\n## Setup Instructions\n\n1. Clone the repository\n\n2. Navigate into the cloned directory and start the project with Docker:\n\n   `docker compose up -d`\n\n3. Install the NPM dependencies:\n\n   `npm install`\n\n4. Build the composer dependencies by running:\n\n   `docker compose exec php composer install`\n\n5. Build the database by running the migrations with this command:\n\n   `docker compose exec php composer run run-migration`\n\n## Swagger, Adminer, and API Endpoints\nAfter setting up, the following services can be accessed as shown:\n\n- Swagger UI: `http://localhost:9001`\n- Adminer (for database management): `http://localhost:8181`\n- API endpoints (for testing): `http://localhost:8080/api/v1/`\n\nTo handle CORS, the `CorsMiddleware` middleware will be used to add appropriate CORS headers to the response.\n\n## Planned\n\n### Authentication\nAlthough authentication is not yet implemented, the Plan is to use JWT Bearer tokens for authentication. With this method, after a user logs in, a token would be generated for the user which will be used to make authenticated requests to the server.\n\nThe `AuthenticationDecorator` middleware will verify the token present in the Authorization header of the request.\n\n### Caching\nCaching is another planned thing that would serve to ease queries to the database and speed up api response.\n\n### Filter\nAdding more complex filter to search for example \"from\" \"to\" range. \n\n### Tests\nFor testing purpose I plan to use PHP Unit tester.\n\n### Versions\nVersioning strategy is crucial for maintaining compatibility and providing a grace period for clients to adjust to new versions","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidbrend%2Fapi-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidbrend%2Fapi-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidbrend%2Fapi-test/lists"}