Daraja é uma estrutura de servidor HTTP flexível para o objeto Pascal, com base no componente do servidor HTTP não visual na biblioteca de código aberto gratuito Internet Direct (Indy).
A Daraja fornece a base principal para servir recursos HTTP de todos os tipos de conteúdo, como páginas HTML, imagens, scripts, respostas de serviços da Web etc., mapeando os caminhos de recursos para o seu próprio código. Seu código pode criar o conteúdo da resposta ou deixar a estrutura servir um arquivo estático.
Os projetos de exemplo incluídos mostram sua utilidade para casos de usos avançados, como OAuth 2.0 e OpenID Connect para Microsoft ENTRA ID e Google Identity Platform.
http://michaeljustin.github.io/daraja-framework/
Um documento de partida (PDF) está disponível em https://www.habarisoft.com/daraja_framework/3.0-ms1/docs/darajaframeworkgettingstarted.pdf
Visite https://www.habarisoft.com/daraja_framework.html para obter mais informações.
Exemplo:
<daraja-home>source;<indy-home>LibCore;<indy-home>LibProtocols;<indy-home>LibSystem
Um manipulador de recursos é responsável pela geração da resposta HTTP correspondendo a uma solicitação específica do cliente. O roteamento entre a solicitação HTTP real e o manipulador de recursos é definido pelas regras de 'mapeamento'. Por exemplo, um manipulador de recursos pode ser mapeado para /context1/index.html com um mapeamento de caminho absoluto :
Context1.Add(TIndexPageResource, ' /index.html ' );Existem dois outros tipos de mapeamento suportados: mapeamento de prefixo ('/ sub1/ ', '/ sub2/ ' ...) e mapeamento de sufixo (' .html', ' .pdf' ...). Todos os mapeamentos são verificados em uma ordem definida para encontrar o manipulador de recursos responsáveis.
Além dos manipuladores de recursos, o aplicativo também pode incluir filtros de recursos. Com os filtros, o tráfego HTTP pode ser modificado de várias maneiras, como:
Todos os tipos de mapeamento também podem ser usados para filtros de recursos.