Releases: HashLoad/horse
3.1.9
What's Changed
- Remove alterações PR (#364) by @ViniAbreu in #435
- #434 - fix: Constant HORSE_VERSION by @ViniAbreu in #436
Full Changelog: 3.1.8...3.1.9
3.1.8
Full Changelog: 3.1.7...3.1.8
3.1.7
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.pasby @shaunroselt in #432 - Limpeza e reorganização de units by @ViniAbreu in #427
New Contributors
- @fabiohmribeiro made their first contribution in #391
- @ds-sampaio made their first contribution in #364
- @shaunroselt made their first contribution in #420
- @mppbg made their first contribution in #423
- @ViniAbreu made their first contribution in #427
Full Changelog: 3.1.6...3.1.7
3.1.6
⭐ 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
3.1.4
-
⭐ 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 -
🔺 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
3.1.2
3.1.1
-
⭐ b0bea0f #330 Horse.Exception - Preencher propriedade Message
Horse.Exception - Populate Message property -
🔺 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
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
- 🔺 8d6b590280d9237b82db059b8055d8098665a0ce Correção na verificação do ContentType
Fixed ContentType check
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
-
⭐ 3849b9ca43ca3373b81809e98a43a35bf3780cb8 Exemplo do Lazarus para criar assinatura JWT
Lazarus sample to create JWT signature -
⭐ 24f1f43166291f08e1c2cf02000ec9b93680bfbf 2e45888efa022fac5a554c1eab0d46c74ef67311 JWT com multichamada
JWT with multicall -
⭐ 14f5b7f130938b5bb36883459622dc6354cdade8 Compatibilidade com o novo FPC
Mode switch function references for new FPC -
⭐ c70f3fb358211a5b53f1bbacfcddc18ac29a9159 edb53ec107d2f6028a350367b3da3e8d781eccea Validação para várias rotas
Validation for multiples routes -
✔ 5d34226ce6f0cbd64908db892a47b8fd6870bb08 37daa990f44720d4b32de130affcc3fa81191e6f 450a4572c8008b6774cdac34e22d9bfca0a32b45 be02a6d5ad127251b9c54037bfebbcb980f90a19 dddd919f246ba473783171f4dae54033ed4aa517 Refatoração
Refactoring -
✔ 4dcd37abf53d5568a47b35c38db84a26ba8197e2 b1ecfa5e588e3a5b0ad1cd5b703543567c360f45 Remoção de linhas em branco
Removing some blank lines -
✔ aa5d3f9c3d600234b2fae471d6a26584e9e4d69a Exemplo de sessão
Session example -
🔺 2b457baa4d614e8ef67332029e77ed1c6081cfff Revertendo o código-fonte para compatibilidade com Lazarus, correção de vazamento e refatoração de código
Rolling back source code for lazarus compatibility, leak fix and code refactoring
Exception
- ✔ [c2186f9d78310aa8ebb864401ac8ead008d85bb2](https://git...