{"id":15560959,"url":"https://github.com/webfiori/http","last_synced_at":"2026-01-16T07:59:19.439Z","repository":{"id":37751552,"uuid":"124054780","full_name":"WebFiori/http","owner":"WebFiori","description":"HTTP handling helper library of WebFiori Framework.","archived":false,"fork":false,"pushed_at":"2024-12-24T20:07:54.000Z","size":673,"stargazers_count":6,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-23T21:46:47.831Z","etag":null,"topics":["hacktoberfest","php","php-library","rest-api","web"],"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/WebFiori.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"custom":["https://paypal.me/IbrahimBinAlshikh","https://www.buymeacoffee.com/ibrahimdev"],"ko_fi":"ibrahimdev"}},"created_at":"2018-03-06T09:32:25.000Z","updated_at":"2024-12-24T20:07:12.000Z","dependencies_parsed_at":"2024-01-17T00:42:24.302Z","dependency_job_id":"27c3de8f-748e-488b-b634-306bd145a9f9","html_url":"https://github.com/WebFiori/http","commit_stats":{"total_commits":619,"total_committers":3,"mean_commits":"206.33333333333334","dds":0.08723747980613894,"last_synced_commit":"00d1afe176fba3773ba09153d6c6b2600badfb17"},"previous_names":[],"tags_count":71,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebFiori%2Fhttp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebFiori%2Fhttp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebFiori%2Fhttp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebFiori%2Fhttp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WebFiori","download_url":"https://codeload.github.com/WebFiori/http/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250522292,"owners_count":21444509,"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":["hacktoberfest","php","php-library","rest-api","web"],"created_at":"2024-10-02T16:04:25.918Z","updated_at":"2026-01-16T07:59:19.382Z","avatar_url":"https://github.com/WebFiori.png","language":"PHP","funding_links":["https://paypal.me/IbrahimBinAlshikh","https://www.buymeacoffee.com/ibrahimdev","https://ko-fi.com/ibrahimdev"],"categories":[],"sub_categories":[],"readme":"# WebFiori HTTP\r\nA simple library for creating RESTful web APIs in adition to providing utilities for handling HTTP request and response. \r\nIt includes inputs feltering and data validation in addion to creating user-defined inputs filters.\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/WebFiori/http/actions\"\u003e\r\n    \u003cimg src=\"https://github.com/WebFiori/http/actions/workflows/php84.yml/badge.svg?branch=master\"\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://codecov.io/gh/WebFiori/http\"\u003e\r\n    \u003cimg src=\"https://codecov.io/gh/WebFiori/http/branch/master/graph/badge.svg\" /\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://sonarcloud.io/dashboard?id=WebFiori_http\"\u003e\r\n      \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=WebFiori_http\u0026metric=alert_status\" /\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://github.com/WebFiori/http/releases\"\u003e\r\n      \u003cimg src=\"https://img.shields.io/github/release/WebFiori/http.svg?label=latest\" /\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://packagist.org/packages/webfiori/http\"\u003e\r\n      \u003cimg src=\"https://img.shields.io/packagist/dt/webfiori/http?color=light-green\"\u003e\r\n  \u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n## Supported PHP Versions\r\n|                                                                                        Build Status                                                                                         |\r\n|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\r\n| \u003ca target=\"_blank\" href=\"https://github.com/WebFiori/http/actions/workflows/php80.yml\"\u003e\u003cimg src=\"https://github.com/WebFiori/http/actions/workflows/php80.yml/badge.svg?branch=master\"\u003e\u003c/a\u003e |\r\n| \u003ca target=\"_blank\" href=\"https://github.com/WebFiori/http/actions/workflows/php81.yml\"\u003e\u003cimg src=\"https://github.com/WebFiori/http/actions/workflows/php81.yml/badge.svg?branch=master\"\u003e\u003c/a\u003e |\r\n| \u003ca target=\"_blank\" href=\"https://github.com/WebFiori/http/actions/workflows/php82.yml\"\u003e\u003cimg src=\"https://github.com/WebFiori/http/actions/workflows/php82.yml/badge.svg?branch=master\"\u003e\u003c/a\u003e |\r\n| \u003ca target=\"_blank\" href=\"https://github.com/WebFiori/http/actions/workflows/php83.yml\"\u003e\u003cimg src=\"https://github.com/WebFiori/http/actions/workflows/php83.yml/badge.svg?branch=master\"\u003e\u003c/a\u003e |\r\n| \u003ca target=\"_blank\" href=\"https://github.com/WebFiori/http/actions/workflows/php84.yml\"\u003e\u003cimg src=\"https://github.com/WebFiori/http/actions/workflows/php84.yml/badge.svg?branch=master\"\u003e\u003c/a\u003e |\r\n\r\n## API Docs\r\nThis library is a part of \u003ca\u003eWebFiori Framework\u003c/a\u003e. To access API docs of the library, you can visid the following link: https://webfiori.com/docs/webfiori/http .\r\n\r\n## Terminology\r\n\r\nFollowing terminology is used by the library: \r\n| Term | Definition|\r\n|:------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\r\n| Web Service | A single end pont that implements a REST service. It is represented as an instance of the class `AbstractWebService`. |\r\n| Services Manager  | An entity which is used to manage a set of web services. Represented by the class `WebServicesManager`. |\r\n| Request Parameter | A way to pass values from a client such as a web browser to the server. Represented by the class `RequestParameter`. |\r\n\r\n## The Idea\r\n\r\nThe idea of the library is as follows, when a client performs a request to a web service, he is usually intersted in performing specific action. Related actions are kept in one place as a set of web services (e.g. CRUD operations on a reasorce). The client can pass arguments (or parameters) to the end point in request body as `POST` or `PUT` request method or as a query string when using `GET` or `DELETE`.\r\n\r\nAn end point is represented by the class [`AbstractWebService`](https://webfiori.com/docs/webfiori/http/AbstractWebService) and a set of web service (or end ponts) are grouped using the class [`WebServicesManager`](https://webfiori.com/docs/webfiori/http/WebServicesManager). Also, body parameters represented by the class [`RequestParameter`](https://webfiori.com/docs/webfiori/http/RequestParameter).\r\n\r\n## Features\r\n* Full support for creating REST services that supports JSON as request and response.\r\n* Support for basic data filtering and validation.\r\n* The ability to create custom filters based on the need.\r\n\r\n## Installation\r\nIf you are using composer to collect your dependencies, you can simply include the following entry in your 'composer.json' file to get the latest release of the library:\r\n\r\n``` json\r\n{\r\n    \"require\": {\r\n        \"webfiori/http\":\"*\"\r\n    }\r\n}\r\n```\r\nNote that the \u003ca href=\"https://github.com/WebFiori/json\"\u003eWebFiori Json\u003c/a\u003e library will be included with the installation files as this library is depending on it. \r\n\r\nAnother option is to download the latest release manually from \u003ca href=\"https://github.com/WebFiori/http/releases\"\u003eRelease\u003c/a\u003e.\r\n\r\n## Usage\r\nFor more information on how to use the library, [check here](https://github.com/WebFiori/wf-docs/blob/master/web-services.md)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebfiori%2Fhttp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebfiori%2Fhttp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebfiori%2Fhttp/lists"}