{"id":21888860,"url":"https://github.com/digitalstars/simple-api","last_synced_at":"2025-07-19T13:07:48.831Z","repository":{"id":56968908,"uuid":"199710386","full_name":"digitalstars/simple-api","owner":"digitalstars","description":"Библиотека для создания POST/GET API используя минимум кода, с  автопроверкой параметров необходимых для модуля","archived":false,"fork":false,"pushed_at":"2024-03-14T11:34:20.000Z","size":56,"stargazers_count":12,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-21T02:21:36.431Z","etag":null,"topics":["api","get","json","library","php","post","simple"],"latest_commit_sha":null,"homepage":"","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/digitalstars.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}},"created_at":"2019-07-30T18:57:16.000Z","updated_at":"2024-03-26T07:41:00.000Z","dependencies_parsed_at":"2024-03-05T10:49:19.448Z","dependency_job_id":null,"html_url":"https://github.com/digitalstars/simple-api","commit_stats":{"total_commits":35,"total_committers":2,"mean_commits":17.5,"dds":"0.17142857142857137","last_synced_commit":"d755b60f0fd800bdfa29fba4897c8dbc4f4db1c1"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/digitalstars/simple-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalstars%2Fsimple-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalstars%2Fsimple-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalstars%2Fsimple-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalstars%2Fsimple-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalstars","download_url":"https://codeload.github.com/digitalstars/simple-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalstars%2Fsimple-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265937391,"owners_count":23852112,"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":["api","get","json","library","php","post","simple"],"created_at":"2024-11-28T11:17:47.131Z","updated_at":"2025-07-19T13:07:48.814Z","avatar_url":"https://github.com/digitalstars.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SimpleAPI\n\n## Подключение\n```composer require digitalstars/simple-api```\n\n## Как с этим работать\nСкрипту обязательно должен приходить параметр module с названием модуля.  \n* Первый параметр - название модуля\n* Остальные параметры - необходимые данные. Если в функции params поставить ? перед параметром, то он считается необязательным\n* В массив answer добавляются необходимые данные для фронта. В конце выполнения кейса, библиотека автоматически вызывает деструктор и данные в json формате отправляются фронту.\n* если вам удобнее передавать много данный в json формате, то передавайте чистый json вместе с модулем в тело POST запроса\n* breake в кейсах ставить не надо, будет и без них нормально работать. Если не нравится инспекции в IDE о пропущенном  break, то просто выключите его\n* если в answer передать массив, он автоматически конвертируется в json\n* OPTIONS запросы игнорируются(полезно если, запросы идут от react/vue/etc)\n* есть метод error, в который передается текст. Этот метод завершает скрипт и возвращает на фронт json вида:\n```{\"error\":\"ваш текст\"}```\n\n* Если не указать хотя бы один из необходимых параметров, то вернется json:\n```{\"error\":\"missed params\"}```\n\n## Пример №1 Обычное использование\nGET Запрос:  \n```site.ru/api.php?module=auth\u0026login=admin\u0026password=admin```  \n\n```php\n\u003c?php\nrequire_once 'lib/vendor/autoload.php';\nuse DigitalStars\\SimpleAPI;\n\n$api = new SimpleAPI();\nswitch ($api-\u003emodule) {\n    case 'auth':\n        $data = $api-\u003eparams(['login', 'password']); //если одного из параметров не будет, скрипт завершится с error\n        $api-\u003eanswer['auth'] = ($data['login'] == 'admin' \u0026\u0026 $data['password'] == 'admin');\n}\n```\nОтвет в json:\n```{\"auth\" : true}```\n\n\n## Пример №2 Использование необязательных параметров\nGET Запрос:  \n```site.ru/api.php?module=reg\u0026login=admin\u0026password=admin\u0026name=Fedor```  \n\n```php\n\u003c?php\nrequire_once 'lib/vendor/autoload.php';\nuse DigitalStars\\SimpleAPI;\n\n$api = new SimpleAPI();\nswitch ($api-\u003emodule) {\n    case 'auth':\n        $data = $api-\u003eparams(['login', 'password', '?name']);\n        if(isset($data['name']])) {\n            $api-\u003eanswer['status'] = true;\n            $api-\u003eanswer['info'] = ['login' =\u003e $data['login'], 'password' =\u003e $data['password']];\n        } else\n            $api-\u003eanswer['status'] = false;\n}\n```\nОтвет в json:\n```{\"status\" : true, \"info\":{\"login\":\"admin\", \"password\":\"admin\"}}```\n\n## Пример №3 использование функции error\nGET Запрос:  \n```site.ru/api.php?module=reg\u0026login=admin\u0026password=admin\u0026age=10```  \n\n```php\n\u003c?php\nrequire_once 'lib/vendor/autoload.php';\nuse DigitalStars\\SimpleAPI;\n\n$api = new SimpleAPI();\nswitch ($api-\u003emodule) {\n    case 'auth':\n        $data = $api-\u003eparams(['login', 'password', 'age']);\n        if($data['age'] \u003c 18)\n            $api-\u003eerror('Извини, но тебе меньше 18 лет');\n}\n```\nОтвет в json:\n```{\"error\" : \"Извини, но тебе меньше 18 лет\"}```\n\n\n## Пример №4 передача json\nКак видите, никакого различия в коде по сравнению с 1 примером  \nGET Запрос:  \n```site.ru/api.php?module=auth\u0026json_data={\"login\":\"123\",\"password\":\"123\"}```\n\n```php\n\u003c?php\nrequire_once 'lib/vendor/autoload.php';\nuse DigitalStars\\SimpleAPI;\n\n$api = new SimpleAPI();\nswitch ($api-\u003emodule) {\n    case 'auth':\n        $data = $api-\u003eparams(['login', 'password']);\n        $api-\u003eanswer['auth'] = ($data['login'] == 'admin' \u0026\u0026 $data['password'] == 'admin');\n}\n```\nОтвет в json:\n```{\"auth\" : false}```\n\n\n## Пример №5 Передача данных через json\nPOST Запрос:  \n```site.ru/api.php```\nТело запроса:\n```{\"module\":\"auth\", \"login\":\"admin\", \"password\":\"admin\"}```\n\n```php\n\u003c?php\nrequire_once 'lib/vendor/autoload.php';\nuse DigitalStars\\SimpleAPI;\n\n$api = new SimpleAPI();\nswitch ($api-\u003emodule) {\n    case 'auth':\n        $data = $api-\u003eparams(['login', 'password']); //если одного из параметров не будет, скрипт завершится с error\n        $api-\u003eanswer['auth'] = ($data['login'] == 'admin' \u0026\u0026 $data['password'] == 'admin');\n}\n```\nОтвет в json:\n```{\"auth\" : true}```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalstars%2Fsimple-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalstars%2Fsimple-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalstars%2Fsimple-api/lists"}