{"id":18069193,"url":"https://github.com/viniciussanchez/restrequest4delphi","last_synced_at":"2026-01-26T21:50:38.129Z","repository":{"id":40555333,"uuid":"195119375","full_name":"viniciussanchez/RESTRequest4Delphi","owner":"viniciussanchez","description":"API to consume REST services written in any programming language with support to Lazarus and Delphi","archived":false,"fork":false,"pushed_at":"2025-11-14T17:54:09.000Z","size":2388,"stargazers_count":595,"open_issues_count":1,"forks_count":170,"subscribers_count":43,"default_branch":"master","last_synced_at":"2025-11-14T19:24:15.879Z","etag":null,"topics":["api","client","delphi","embarcadero","fpc","freepascal","indy","lazarus","nethttp","request","rest","simple"],"latest_commit_sha":null,"homepage":"https://go.hotmart.com/U88695509H","language":"Pascal","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/viniciussanchez.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"restrequest4delphi"}},"created_at":"2019-07-03T20:02:26.000Z","updated_at":"2025-11-14T17:54:12.000Z","dependencies_parsed_at":"2023-02-18T06:16:08.978Z","dependency_job_id":"d3adcbdd-5563-4b87-96bc-9d5d762a1fa0","html_url":"https://github.com/viniciussanchez/RESTRequest4Delphi","commit_stats":{"total_commits":259,"total_committers":44,"mean_commits":5.886363636363637,"dds":0.4208494208494209,"last_synced_commit":"da2a4d43e43aa7a1bff6de6fcd01b2ba1d79af26"},"previous_names":[],"tags_count":69,"template":false,"template_full_name":null,"purl":"pkg:github/viniciussanchez/RESTRequest4Delphi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciussanchez%2FRESTRequest4Delphi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciussanchez%2FRESTRequest4Delphi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciussanchez%2FRESTRequest4Delphi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciussanchez%2FRESTRequest4Delphi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viniciussanchez","download_url":"https://codeload.github.com/viniciussanchez/RESTRequest4Delphi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciussanchez%2FRESTRequest4Delphi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28789112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: 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","client","delphi","embarcadero","fpc","freepascal","indy","lazarus","nethttp","request","rest","simple"],"created_at":"2024-10-31T08:09:33.950Z","updated_at":"2026-01-26T21:50:38.112Z","avatar_url":"https://github.com/viniciussanchez.png","language":"Pascal","funding_links":["https://opencollective.com/restrequest4delphi"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/viniciussanchez/RESTRequest4Delphi/blob/master/img/logo.png\"\u003e\n    \u003cimg alt=\"Horse\" height=\"150\" src=\"https://github.com/viniciussanchez/RESTRequest4Delphi/blob/master/img/logo.png\"\u003e\n  \u003c/a\u003e  \n\u003c/p\u003e\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eRESTRequest4Delphi\u003c/b\u003e is a API to consume \u003ca href=\"https://en.wikipedia.org/wiki/Representational_state_transfer\"\u003e\u003cb\u003eREST\u003c/b\u003e\u003c/a\u003e services written in \u003cb\u003eany\u003c/b\u003e programming language.\u003cbr\u003eDesigned to facilitate development, in a \u003cb\u003esimple\u003c/b\u003e and \u003cb\u003eminimalist\u003c/b\u003e way. \u003cbr\u003eBuy our official training by \u003ca href=\"https://go.hotmart.com/U88695509H\"\u003e\u003cb\u003eclicking here\u003c/b\u003e\u003c/a\u003e!\n \n\u003c/p\u003e\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/v/release/viniciussanchez/RESTRequest4Delphi?style=flat-square\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/stars/viniciussanchez/RESTRequest4Delphi?style=flat-square\"\u003e\n\u003c/p\u003e\n \n## ⚙️ Installation \n\n* **Manual installation**: Add the following folders to your project, in *Project \u003e Options \u003e Building \u003e Delphi Compiler \u003e Search path*\n\n```\n../RESTRequest4Delphi/src\n```\n\n* Installation using the [**Boss**](https://github.com/HashLoad/boss):\n\n```\nboss install github.com/viniciussanchez/RESTRequest4Delphi\n```\n\n## 🔰 Engines\n\nBy default, the components **TRESTRequest**, **TRESTResponse** and **TRESTClient** are used to make requests when your using Delphi. If you use Lazarus, the [**fphttpclient**](https://wiki.lazarus.freepascal.org/fphttpclient) components are used by default. The RESTRequest4Delphi has support to five engines to make requests: RESTClient, [**Synapse**](http://www.ararat.cz/synapse/doku.php/download), [**ICS Overbyte**](https://wiki.overbyte.eu/wiki/index.php/ICS_Download), Indy and NetHTTP. You can change the engine to make requests. To do this, simply define in: *Project \u003e Options \u003e Delphi Compiler \u003e Conditional defines* the compiler directive `RR4D_INDY`, `RR4D_SYNAPSE`, `RR4D_ICS` or `RR4D_NETHTTP`\n\n**Note**: for Lazarus, the **fphttpclient** engine is the default. But you can switch to **Indy** setting `RR4D_INDY` directive or to [**Synapse**](http://www.ararat.cz/synapse/doku.php/download) setting `RR4D_SYNAPSE` directive.\n\n## 🔌 Adapters\nAdapters allow you to extend the functionality of RESTREquest4Delphi without changing the core of the project. See the list of adapters available by the community:\n* [**dataset-serialize-adapter-restrequest4delphi**](https://github.com/viniciussanchez/dataset-serialize-adapter-restrequest4delphi) - Adapter to load a DataSet using the DataSet-Serialize library at the time of the request;\n* [**csv-adapter-restrequest4delphi**](https://github.com/Code4Delphi/csv-adapter-restrequest4delphi) - Allows you to generate a text or CSV file with the content of a request;\n\n## ⚡️ Quickstart\n\nYou need to use RESTRequest4D\n\n```pascal\nuses RESTRequest4D;\n```\n\n* **GET**\n\n```pascal\nvar\n  LResponse: IResponse;\nbegin\n  LResponse := TRequest.New.BaseURL('http://localhost:8888/users')\n    .AddHeader('HeaderName', 'HeaderValue')\n    .AddParam('ParameterName', 'ParameterValue')\n    .Accept('application/json')\n    .Get;\n  if LResponse.StatusCode = 200 then\n    ShowMessage(LResponse.Content);\nend;\n``` \n\n* **GET AS DATASET USING ADAPTERS**\n\n```pascal\nbegin\n  TRequest.New.BaseURL('http://localhost:8888/users')\n    .Adapters(TDataSetSerializeAdapter.New(FDMemTable))\n    .Accept('application/json')\n    .Get;\nend;\n``` \n\n* **POST**\n\n```pascal\nbegin\n  TRequest.New.BaseURL('http://localhost:8888/users')\n    .ContentType('application/json')\n    .AddBody('{\"name\":\"Vinicius\",\"lastName\":\"Sanchez\",\"email\":\"viniciuss.sanchez@gmail.com\"}')\n    .Post;\nend;\n```\n\n* **PUT**\n\n```pascal\nbegin\n  TRequest.New.BaseURL('http://localhost:8888/users/1')\n    .ContentType('application/json')\n    .AddBody('{\"name\":\"Vinicius\",\"lastName\":\"Scandelai Sanchez\",\"email\":\"viniciuss.sanchez@gmail.com\"}')\n    .Put;\nend;\n``` \n\n* **DELETE**\n\n```pascal\nbegin\n  TRequest.New.BaseURL('http://localhost:8888/users/1')\n    .Accept('application/json')\n    .Delete;\nend;\n```\n\n## 🔒 Authentication\n\nYou can set credentials using the `BasicAuthentication`, `Token` or `TokenBearer` method before making the first request:\n\n```pascal\nbegin\n  Request.BasicAuthentication('username', 'password');\n  Request.Token('token-type ' + token);\n  Request.TokenBearer(token);\nend;\n```\nYou can set it once and it will be used for every request.\n\n## 📝 Samples\n\nTwo projects were developed within the examples folder:\n\n* **client**: Windows VCL application consuming a REST API developed in Node.js\n\nTo run the project, you need to install its dependencies ([**DataSet-Serialize**](https://github.com/viniciussanchez/dataset-serialize)). To install using [**Boss**](https://github.com/HashLoad/boss), open a terminal and type:\n\n```\nboss install\n```\nIf you prefer, you can manually download the `DataSet-Serialize` and add it to `Search Path`.\n\n* **server-node**: REST server developed with [**Node.js**](https://nodejs.org/en/) and [**Express**](https://expressjs.com/). \n\nTo run the server you will need [**Node.js**](https://nodejs.org/en/) and [**NPM**](https://www.npmjs.com/). With everything installed, open a terminal, install the dependencies and run the server:\n```\nnpm install\nnode server.js\n```\n\n## 💻 Code Contributors\n\n\u003cimg src=\"https://opencollective.com/restrequest4delphi/contributors.svg?width=890\u0026button=false\" alt=\"Code Contributors\" style=\"max-width:100%;\"\u003e\n\n## ⚠️ License\n\n`RESTRequest4Delphi` is free and open-source software licensed under the [MIT License](https://github.com/viniciussanchez/RESTRequest4Delphi/blob/master/LICENSE). \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviniciussanchez%2Frestrequest4delphi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviniciussanchez%2Frestrequest4delphi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviniciussanchez%2Frestrequest4delphi/lists"}