Skip to content

Releases: HashLoad/horse

3.1.9

17 Sep 18:25
0dd85a9

Choose a tag to compare

What's Changed

Full Changelog: 3.1.8...3.1.9

3.1.8

14 Sep 14:36

Choose a tag to compare

Full Changelog: 3.1.7...3.1.8

3.1.7

14 Sep 14:29

Choose a tag to compare

What's Changed

  • Implementacoes para tratamento de QueryParams como List by @fabiohmribeiro in #391
  • Na versão Seattle o Body do Request não esta reconhecendo caracteres especiais by @ds-sampaio in #364
  • Added Support for "Delphi 12 Athens" in Update README.md by @shaunroselt in #420
  • Update LICENSE Copyright to 2025 by @shaunroselt in #421
  • The HORSE_NOPROVIDER define has been included. It allows packages to … by @mppbg in #423
  • Fixed spelling mistake in HorseConstants.pas by @shaunroselt in #432
  • Limpeza e reorganização de units by @ViniAbreu in #427

New Contributors

Full Changelog: 3.1.6...3.1.7

3.1.6

16 Feb 20:11

Choose a tag to compare

e52a0b2 Adicionado o "detail" em EHorseException.ToJSONObject
Added "detail" on EHorseException.ToJSONObject

95ed98c Adicionado o middleware Horse-XMLDoc
Add new middleware Horse-XMLDoc

2679601 Adicionado MaxConnections no módulo Apache
Added MaxConnections on Apache mode

815933a Adicionado métodos virtuais
Added virtual methods

🔺fbe9025 Correção de memory leaks
Bug fix: memory leak

🔺e53c485 Correção na opção Apache Module
Bug fix: Apache module option

🔺abf8c10 Correção de erro mime types
Bug fix: horse mime types

3.1.5

17 Aug 11:17

Choose a tag to compare

  • 🔺 12d7255 Correção de erro no provider VCL
    Bug fix VCL

3.1.4

07 Aug 12:11

Choose a tag to compare

  • 26ca310 Overload do método construtor com opção para informar o erro
    Created a overload constructor with string parameter

  • 24dc9b2 3589a8d Adicionado Contains, StartsWith e EndsWith no LHS Brackets
    Add new LHS Brackets: Contains, StartsWith and EndsWith

  • 5b7065a Adicionado a property Detail e adicionado o método ToJsonObject
    Added Detail property and ToJsonObject method

  • f3088cd 897108d Melhorias no código
    Code improvements

  • 🔺 a63094c Hotfix Correção do Get Environment Variables usando Delphi para Linux
    Get Environment Variables using Delphi for Linux

  • 🔺 0d839f9 Correção de erro no provider VCL (Alexandre Magno)
    Bug fix VCL provider (Alexandre Magno)

  • 🔺 8e26696 Correção do uses na unit Horse.Exception para FPC
    Fix uses clause of Horse.Exception when FPC is defined

3.1.3

12 May 11:42

Choose a tag to compare

🔺 f1fc61e Bug na compilação para Lazarus
Bug fix: lazarus build

3.1.2

05 May 17:30

Choose a tag to compare

  • 30c0e2e KeepConnectionAlive como padrão será True
    KeepConnectionAlive default is true

  • 🔺 cb824bc Correção de erro: query params com espaços em branco
    Bug fix: Query params field with blank space

  • 🔺 c73c237 Correção de erro: ao acessar um endpoint que não existe
    Bug fix: not found

3.1.1

13 Apr 12:26

Choose a tag to compare

  • b0bea0f #330 Horse.Exception - Preencher propriedade Message
    Horse.Exception - Populate Message property

  • 5b412a5 1f1859e Alteração do README.md
    Updated README.md

  • 🔺 e99d380 #332 - Alterando a comparação de String.IsEmpty para igual a EmptyStr, para compatibilidade com Delphi 10 Seattle
    Changing comparison of String.IsEmpty to equal EmptyStr, for compatibility with Delphi 10 Seattle

3.1.0

10 Mar 02:04

Choose a tag to compare

Horse 3.1.0

  • b917126 Nova unit Horse.Mime que implementa a classe THorseMimeTypes responsável por retornar o tipo MIME associado à extensão de um arquivo
    New Horse.Mime unit that implements the THorseMimeTypes class responsible for returning the MIME type associated with a file extension

  • 7d2e174 Adicionado a opção de poder trabalhar com regex nas rotas
    Added the option to work with regex on routes

THorse.Get('/(discussion|page)/:id',
  procedure(Req: THorseRequest; Res: THorseResponse)
  begin
    Res.Send('Hello - ID: ' + Req.Params.Items['id']);
  end);

THorse.Get('/(\d{5})',
  procedure(Req: THorseRequest; Res: THorseResponse)
  begin
    Res.Send('Hello - ID: ' + Req.RawWebRequest.PathInfo);
  end);
  • ed21e21 Adicionado o KeepAlive no provider VCL, LCL e DAEMON
    Added KeepAlive in VCL, LCL and DAEMON provider
THorse.KeepConnectionAlive := True;
  • c235bca Adicionado as propriedades CipherList e DHParamsFile (Diffie–Hellman) na IOHandleSSL
    Added Cipher List and DHParams File (Diffie–Hellman) properties in IOHandleSSL
THorse.IOHandleSSL
  .DHParamsFile('')
  .CipherList('');
  • a95e9b7 Adição do campo Hint na classe de exceção EHorseException, para descrever a solução do erro
    Added a Hint field in the EHorseException exception class to describe the error solution
raise EHorseException.New.Hint('');
  • e5dc69c Possibilidade de excluir um header do response
    Possibility to exclude a response header
Res.RemoveHeader('');
  • 413a104 Endpoint genérico para responder a qualquer chamada não registrada
    Generic endpoint to answer any unregistered call
THorse.All('*',
  procedure(Req: THorseRequest; Res: THorseResponse)
  begin
    Res.Send(Req.PathInfo);
  end);
  • ae4b30f Adicionada as funções Host, PathInfo e ContentType na THorseRequest
    Added Host, PathInfo and ContentType functions in THorseRequest
Req.Host;
Req.PathInfo;
Req.ContentType;
  • f29a9f9 Refatoração da unit Horse.Core.Files para utilização da classe THorseMimeTypes da unit Horse.Mime
    Refactoring of the Horse.Core.Files unit to use the THorseMimeTypes class of the Horse.Mime unit

  • 73b6bd0 Refatoração da unit Horse.Response para utilização da classe THorseMimeTypes da unit Horse.Mime
    Refactoring of the Horse.Response unit to use the THorseMimeTypes class of the Horse.Mime unit

  • 378af0a Melhorias no código
    Code improvements

  • dcb1b63 Agora o Horse vai definir o position igual a zero por padrão na função SendFile e a passagem do nome do arquivo se tornou opcional
    Now Horse will set position equal to zero by default in the SendFile function and passing the file name has become optional

  • b15e333 Agora o Horse vai definir o position igual a zero por padrão na função Download
    Now Horse will set the position equal to zero by default in the Download function

  • 6c6be4f Implementação da interface IHorseProviderIOHandleSSL e refatoração do código
    Implementing the IHorseProviderIOHandleSSL interface and refactoring the code

// Antes / Old
THorse.IOHandleSSL.KeyFile := leKey.Text;
THorse.IOHandleSSL.CertFile := leCrt.Text;
THorse.IOHandleSSL.OnGetPassword := Self.OnGetPassword;
THorse.IOHandleSSL.SSLVersions := [sslvTLSv1_2];
THorse.IOHandleSSL.Active := True;

// Agora / New
THorse.IOHandleSSL
  .KeyFile(leKey.Text)
  .CertFile(leCrt.Text)
  .OnGetPassword(Self.OnGetPassword)
  .SSLVersions([sslvTLSv1_2])
  .Active(True);
  • 14e88c6 Adicionado um atalho para a classe THorseMimeTypes na unit principal do Horse
    Added a shortcut for the THorseMimeTypes class in the main Horse unit

  • b0bea0f Preenchimento da propriedade Message ao definir o erro de uma exceção do Horse
    Completion of the Message property when defining the error of a Horse exception

  • 8794e0f Ajustes dos exemplos e remoção de hints e warnings do Horse no lazarus
    Example tweaks and removal of Horse hints and warnings in lazarus

  • be629fb Remoção de Hints
    Removing Hints

  • 8684650 Remoção do parâmetro no callback do THorse.Listen
    Removal of the parameter in the THorse.Listen callback

// Antes / Old
THorse.Listen(9000,
  procedure(Horse: THorse)
  begin
    Writeln(Format('Server is runing on %s:%d', [Horse.Host, Horse.Port]));
    Readln;
  end);

// Agora / New
THorse.Listen(9000,
  procedure
  begin
    Writeln(Format('Server is runing on %s:%d', [THorse.Host, THorse.Port]));
    Readln;
  end);
  • ee33a2a eb995d4 Alterações referentes ao novo FPC
    Changes related to the new FPC

  • 🔺 9678960 Ajustes na unit Horse.Provider.FPC.LCL para não congelar a tela quando executar (Contribuição do Alexandre Magno)
    Adjustments in the Horse.Provider.FPC.LCL unit to not freeze the screen when running (Contributed by Alexandre Magno)

  • 🔺 76dc02e Correção da falha ao ler os headers no Apache com Delphi
    Fixed crash when reading headers in Apache with Delphi

  • 🔺 d69190e Ajustes para compilação no Lazarus
    Lazarus build tweaks

  • 🔺 cc35d4d Correção do erro ao ler os parâmetros do formulário no Delphi Seattle
    Fixed error when reading form parameters in Delphi Seattle

  • 🔺 039bbe0 118dcc1 Correção no exemplo para definição das rotas
    Correction in the example for defining routes

  • 🔺 be376bc 5d43ba6 Correção do erro ao ler os headers no CGI
    Fixed error when reading headers in CGI

  • 🔺 b6e3ea5 f63e3db 2251914 Correção na leitura do PathInfo com CGI quando o PathInfo estiver vazio
    Fix for reading PathInfo with CGI when PathInfo is empty

Jhonson

Basic Authentication

  • 🔺 0cd4d3f7feadaaafb255a667f1182e121fae6d9c O header de autenticação no módulo Apache deve ser lido de "Raw WebRequest"
    The authentication Header under Apache Module must be readed from "RawWebRequest"

JWT

Exception

  • ✔ [c2186f9d78310aa8ebb864401ac8ead008d85bb2](https://git...
Read more