GithubHelp home page GithubHelp logo

viniciussanchez / restrequest4delphi Goto Github PK

View Code? Open in Web Editor NEW
493.0 46.0 142.0 2.07 MB

API to consume REST services written in any programming language with support to Lazarus and Delphi

Home Page: https://go.hotmart.com/U88695509H

License: MIT License

Pascal 100.00%
rest request client api delphi simple lazarus fpc embarcadero indy

restrequest4delphi's Introduction

Horse


RESTRequest4Delphi is a API to consume REST services written in any programming language.
Designed to facilitate development, in a simple and minimalist way.
Buy our official training by clicking here!


⚙️ Installation

  • Manual installation: Add the following folders to your project, in Project > Options > Building > Delphi Compiler > Search path
../RESTRequest4Delphi/src
  • Installation using the Boss:
boss install github.com/viniciussanchez/RESTRequest4Delphi

🔰 Engines

By default, the components TRESTRequest, TRESTResponse and TRESTClient are used to make requests when your using Delphi. If you use Lazarus, the fphttpclient components are used by default. The RESTRequest4Delphi has support to five engines to make requests: RESTClient, Synapse, ICS Overbyte, Indy and NetHTTP. You can change the engine to make requests. To do this, simply define in: Project > Options > Delphi Compiler > Conditional defines the compiler directive RR4D_INDY, RR4D_SYNAPSE, RR4D_ICS or RR4D_NETHTTP

Note: for Lazarus, the fphttpclient engine is the default. But you can switch to Indy setting RR4D_INDY directive or to Synapse setting RR4D_SYNAPSE directive.

🔌 Adapters

Adapters allow you to extend the functionality of RESTREquest4Delphi without changing the core of the project. See the list of adapters available by the community:

⚡️ Quickstart

You need to use RESTRequest4D

uses RESTRequest4D;
  • GET
var
  LResponse: IResponse;
begin
  LResponse := TRequest.New.BaseURL('http://localhost:8888/users')
    .AddHeader('HeaderName', 'HeaderValue')
    .AddParam('ParameterName', 'ParameterValue')
    .Accept('application/json')
    .Get;
  if LResponse.StatusCode = 200 then
    ShowMessage(LResponse.Content);
end;
  • GET AS DATASET USING ADAPTERS
begin
  TRequest.New.BaseURL('http://localhost:8888/users')
    .Adapters(TDataSetSerializeAdapter.New(FDMemTable))
    .Accept('application/json')
    .Get;
end;
  • POST
begin
  TRequest.New.BaseURL('http://localhost:8888/users')
    .ContentType('application/json')
    .AddBody('{"name":"Vinicius","lastName":"Sanchez","email":"[email protected]"}')
    .Post;
end;
  • PUT
begin
  TRequest.New.BaseURL('http://localhost:8888/users/1')
    .ContentType('application/json')
    .AddBody('{"name":"Vinicius","lastName":"Scandelai Sanchez","email":"[email protected]"}')
    .Put;
end;
  • DELETE
begin
  TRequest.New.BaseURL('http://localhost:8888/users/1')
    .Accept('application/json')
    .Delete;
end;

🔒 Authentication

You can set credentials using the BasicAuthentication, Token or TokenBearer method before making the first request:

begin
  Request.BasicAuthentication('username', 'password');
  Request.Token('token-type ' + token);
  Request.TokenBearer(token);
end;

You can set it once and it will be used for every request.

📝 Samples

Two projects were developed within the examples folder:

  • client: Windows VCL application consuming a REST API developed in Node.js

To run the project, you need to install its dependencies (DataSet-Serialize). To install using Boss, open a terminal and type:

boss install

If you prefer, you can manually download the DataSet-Serialize and add it to Search Path.

To run the server you will need Node.js and NPM. With everything installed, open a terminal, install the dependencies and run the server:

npm install
node server.js

💻 Code Contributors

Code Contributors

⚠️ License

RESTRequest4Delphi is free and open-source software licensed under the MIT License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.