Skip to content

koder95/Simple-Request-Service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Request Service

Projekt dostarcza interfejs dostawcy serwisu wysyłania żądań HTTP.

<dependency>
  <groupId>pl.koder95</groupId>
  <artifactId>srs</artifactId>
  <version>0.1.0</version>
</dependency>

Wykonywanie żądań dokonuje się za pomocą interfejsu Call, którego implementację dostarcza interfejs CallHandler. Za jego pomocą usługa Service może obsługiwać kolejkę żądań Request. Odpowiedzi Response na żądania mogą być przechwycone przez interfejs Callback, w celu ich dowolnej obsługi.

Biblioteka dostarcza również definicję wszystkich metod żądań HTTP (enumeracja Method).

Uruchamianie usługi

Przykładowy kod uruchamiający serwis:

package com.example.app;

import pl.koder95.srs.Response;
import pl.koder95.srs.Service;

import java.util.concurrent.LinkedBlockingDeque;

public class App {
    public static void main(String[] args) {
        Service service = new Service("My service",
                () -> request -> Response.builder().build(),
                (request, response) -> System.out.println(response),
                new LinkedBlockingDeque<>()
        );
        service.start();
    }
}

Usługa wykonuje w pętli pobieranie żądania z kolejki i wysyła je do obsługi wywołań CallHandler aż do żądania zamknięcia usługi przez wywołanie metody close(). Metoda start() uruchamia nowy wątek typu demon (działający w tle).

Tworzenie żądań

Przykładowy kod tworzący nowe żądanie:

Request request = Request.builder()
        .method(Method.GET) // domyślna wartość
        .path("/index.html") // wartość domyślna: "/"
        .protocol(Protocol.HTTP_1_1) // domyślna wartość
        .header("Content-type", "text/html")
        .body("") // domyślna wartość
        .build();

Tak utworzone żądanie można wysłać do serwisu:

Service service;
// ...
boolean inQueue = service.enqueue(request);

About

Simple HTTP Request SPI

Topics

Resources

License

Stars

Watchers

Forks

Languages