The Public house plan for PHP launched variation 2, restored from scratch with faster concurrency, retries, HTTP customer agnostic style, solo demands, and also extra:
Launch day!
Presenting Public house v2.0 It’s been an extraordinary trip structure this. Version 2 is stuffed packed with functions and also renovations that I assume you’ll like. Beginning structure attractive API combinations and also SDKs today
Take Pleasure In ❤ https://t.co/Vo4V7kCfmr pic.twitter.com/aldCuhA16u
— Sam Carré (@carre_sam) February 20, 2023
- Namespace modifications (i.e.,
SaloonRequest -> > Demand
) - Decoupling Guzzle from the Watering Hole V2 Plan
- Better designer experience
- Connector-first style
- New Middleware pipe
- Demand concurrency and also merging
- Much better user interface fostering
- Better communications with demands, headers, inquiry params, and also config
- Enhanced multi-part demands
- Enhanced Laravel assistance
- Better exemption handling
- Solo demands
- New pagination assistants
- As Well As extra
Solo demands are best for APIs for which you may make one demand to the API. Generally, you would certainly require to specify a port to make demands. With a solo demand, you specify a course that expands SoloRequest
and also telephone call send out()
to utilize it!
course GetPokemonRequest expands SoloRequest
{
shielded Technique $approach = Technique:: OBTAIN;
public feature resolveEndpoint()
{
return ' https://pokeapi.co/api/v2/pokemon';
}
}
// No Port Needed!
$ demand = brand-new GetPokemonRequest;
$ feedback = $demand->> send out();
Pagination is one more brand-new attribute that makes it simple to repeat via numerous web pages without composing any kind of boilerplate code:
$ connector = brand-new SpotifyConnector;
// Develop a paginator and also come on a demand course, in this instance
// we'll come on the LikedSongsRequest which will certainly fetch all
// such tracks of the confirmed individual.
$ paginator = $connector->> paginate( brand-new LikedSongsRequest);
// Develop a Laravel LazyCollection from the paginator and also repeat
// over each of the outcomes. Typically, such tracks endpoint
// just allows you obtain 50 tracks per demand, yet the paginator will certainly
// instantly get every web page of outcomes and also pass it right into a
// solitary collection!
$ collection = $paginator->> accumulate(' products')->> map( feature ($ track) {
return sprintf('% s - %s', $track['artist'], $track['name']);
} );
// Transform the LazyCollection right into a selection.
$ information = $collection->> all();
To see whatever brand-new in V2, take a look at What’s brand-new in v2 in the main paperwork. Congratulations to Sam Carré and also all the factors that dealt with Public house V2!
Associated: API Assimilations utilizing Public house in Laravel