{"id":20103132,"url":"https://github.com/dotkernel/api","last_synced_at":"2025-04-09T14:08:37.001Z","repository":{"id":34700802,"uuid":"182824326","full_name":"dotkernel/api","owner":"dotkernel","description":"DotKernel's PSR-7 REST style API built around the Mezzio API skeleton.","archived":false,"fork":false,"pushed_at":"2025-03-25T13:46:44.000Z","size":3587,"stargazers_count":42,"open_issues_count":11,"forks_count":4,"subscribers_count":11,"default_branch":"5.0","last_synced_at":"2025-04-02T08:36:31.995Z","etag":null,"topics":["laminas","mezzio","mezzio-api-skeleton","psr-7","rest-api","restful-api"],"latest_commit_sha":null,"homepage":"https://docs.dotkernel.org/api-documentation/","language":"PHP","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/dotkernel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"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":"2019-04-22T16:18:19.000Z","updated_at":"2025-03-14T11:56:18.000Z","dependencies_parsed_at":"2023-01-15T08:38:42.004Z","dependency_job_id":"7dc37149-8319-4bfa-86b3-36990b99a9b1","html_url":"https://github.com/dotkernel/api","commit_stats":{"total_commits":431,"total_committers":15,"mean_commits":"28.733333333333334","dds":0.5638051044083527,"last_synced_commit":"52c2d67d177a9189f8126cb95b5ebc0f66f95a3f"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotkernel%2Fapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotkernel%2Fapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotkernel%2Fapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotkernel%2Fapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotkernel","download_url":"https://codeload.github.com/dotkernel/api/tar.gz/refs/heads/5.0","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248054205,"owners_count":21039952,"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":["laminas","mezzio","mezzio-api-skeleton","psr-7","rest-api","restful-api"],"created_at":"2024-11-13T17:34:24.003Z","updated_at":"2025-04-09T14:08:36.982Z","avatar_url":"https://github.com/dotkernel.png","language":"PHP","readme":"# DotKernel API\n\nDotKernel API is a PHP skeleton app for building REST APIs using [Laminas](https://github.com/laminas) and [Mezzio](https://github.com/mezzio) components and implements standards like PSR-3, PSR-4, PSR-7, PSR-11 and PSR-15.\n\nDotkernel API is an alternative for legacy Laminas API Tools (formerly Apigility) applications, and is based on Enrico Zimuel's [Zend Expressive API - Skeleton example](https://github.com/ezimuel/zend-expressive-api).\n\n\u003e Live [demo](https://api.dotkernel.net/).\n\n## Documentation\n\nDocumentation is available at: https://docs.dotkernel.org/api-documentation/\n\n## Badges\n\n![OSS Lifecycle](https://img.shields.io/osslifecycle/dotkernel/api)\n![PHP from Packagist (specify version)](https://img.shields.io/packagist/php-v/dotkernel/api/5.2.0)\n\n[![GitHub issues](https://img.shields.io/github/issues/dotkernel/api)](https://github.com/dotkernel/api/issues)\n[![GitHub forks](https://img.shields.io/github/forks/dotkernel/api)](https://github.com/dotkernel/api/network)\n[![GitHub stars](https://img.shields.io/github/stars/dotkernel/api)](https://github.com/dotkernel/api/stargazers)\n[![GitHub license](https://img.shields.io/github/license/dotkernel/api)](https://github.com/dotkernel/api/blob/5.0/LICENSE.md)\n\n[![Build Static](https://github.com/dotkernel/api/actions/workflows/continuous-integration.yml/badge.svg?branch=5.0)](https://github.com/dotkernel/api/actions/workflows/continuous-integration.yml)\n[![codecov](https://codecov.io/gh/dotkernel/api/graph/badge.svg?token=53FN78G5CK)](https://codecov.io/gh/dotkernel/api)\n[![Qodana](https://github.com/dotkernel/api/actions/workflows/qodana_code_quality.yml/badge.svg?branch=5.0)](https://github.com/dotkernel/api/actions/workflows/qodana_code_quality.yml)\n[![PHPStan](https://github.com/dotkernel/api/actions/workflows/static-analysis.yml/badge.svg?branch=5.0)](https://github.com/dotkernel/api/actions/workflows/static-analysis.yml)\n\n## Getting Started\n\n## Step 1: Clone the project\n\nUsing your terminal, navigate inside the directory you want to download the project files into. Make sure that the directory is empty before proceeding to the download process. Once there, run the following command:\n\n    git clone https://github.com/dotkernel/api.git .\n\n## Step 2: Install project's dependencies\n\n    composer install\n\n## Step 3: Development mode\n\nIf you're installing the project for development, make sure you have development mode enabled, by running:\n\n    composer development-enable\n\nYou can disable development mode by running:\n\n    composer development-disable\n\nYou can check if you have development mode enabled by running:\n\n    composer development-status\n\n## Step 4: Prepare config files\n\n* duplicate `config/autoload/cors.local.php.dist` as `config/autoload/cors.local.php` \u003c- if your API will be consumed by another application, make sure configure the `allowed_origins`\n* duplicate `config/autoload/local.php.dist` as `config/autoload/local.php`\n* duplicate `config/autoload/mail.local.php.dist` as `config/autoload/mail.local.php` \u003c- if your API will send emails, make sure you fill in SMTP connection params\n* **optional**: in order to run/create tests, duplicate `config/autoload/local.test.php.dist` as `config/autoload/local.test.php` \u003c- this creates a new in-memory database that your tests will run on\n\n## Step 5: Setup database\n\n## Running migrations\n\n* create a new MySQL database - set collation to `utf8mb4_general_ci`\n* fill out the database connection params in `config/autoload/local.php` under `$databases['default']`\n* run the database migrations by using the following command:\n\n    php vendor/bin/doctrine-migrations migrate\n\nThis command will prompt you to confirm that you want to run it:\n\n    WARNING! You are about to execute a migration in database \"...\" that could result in schema changes and data loss. Are you sure you wish to continue? (yes/no) [yes]:\n\nHit `Enter` to confirm the operation.\n\n## Executing fixtures\n\n**Fixtures are used to seed the database with initial values and should be executed after migrating the database.**\n\nTo list all the fixtures, run:\n\n    php bin/doctrine fixtures:list\n\nThis will output all the fixtures in the order of execution.\n\nTo execute all fixtures, run:\n\n    php bin/doctrine fixtures:execute\n\nTo execute a specific fixture, run:\n\n    php bin/doctrine fixtures:execute --class=FixtureClassName\n\nMore details on how fixtures work can be found here: https://github.com/dotkernel/dot-data-fixtures#creating-fixtures\n\n## Step 6: Test the installation\n\n    php -S 0.0.0.0:8080 -t public\n\nSending a GET request to the [home page](http://0.0.0.0:8080/) should output the following message:\n\n    {\n    \"message\": \"DotKernel API version 5\"\n    }\n\n## Documentation\n\nIn order to access DotKernel API documentation, check the provided [readme file](documentation/README.md).\n\nAdditionally, each CLI command available has it's own documentation:\n\n* [Create admin account](documentation/command/admin-create.md)\n* [Generate database migrations](documentation/command/migrations-diff.md)\n* [Display available endpoints](documentation/command/route-list.md)\n* [Generate tokens](documentation/command/token-generate.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotkernel%2Fapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotkernel%2Fapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotkernel%2Fapi/lists"}