pixelpeter/laravel5-genderize-api-client

Laravel 5 client for the genderize.io API

v2.0.0 2017-12-25 17:07 UTC

README

Latest Version on Packagist Software License Travis Build Scrutinizer Quality Scrutinizer Build SensioLabsInsight Total Downloads Coverage Status

A simple Laravel 5 client for the Genderize.io API. It provides a fluent interface for easy request building.

Version overview

Laravel php use branch
5.8 7.1, 7.2, 7.3 w.i.p.
5.7 7.1, 7.2, 7.3 2.0.x
5.6 7.1, 7.2, 7.3 2.0.x
5.5 7.0, 7.1, 7.2 1.1.x/2.0.x

Installation

Step 1: Install Through Composer

composer require pixelpeter/laravel5-genderize-api-client

Step 2: Add the Service Provider (not needed with v2.x because of auto discovery)

Add the service provider in app/config/app.php

'provider' => [
    ...
    Pixelpeter\Genderize\GenderizeServiceProvider::class,
    ...
];

Step 3: Add the Facade

Add the alias in app/config/app.php

'aliases' => [
    ...
    'Genderize' => Pixelpeter\Genderize\Facades\Genderize::class,
    ...
];

Step 4: Publish the configuration file

This is only needed when you have an API key from Genderize.io

php artisan vendor:publish --provider="Pixelpeter\Genderize\GenderizeServiceProvider"

Examples

Send requests

Single name

use Genderize;

Genderize::name('Peter')->get();

Multiple names (max. 10)

use Genderize;

Genderize::name(['John', 'Jane'])->get();

// or for better readability you can use the plural
Genderize::names(['John', 'Jane'])->get();

Add language and country options

use Genderize;

Genderize::name('John')->country('US')->lang('EN')->get();

Working with the response

For single usage

use Genderize;

$response = Genderize::name('Peter')->get();

print $response->result->gender; // 'male'
print $response->result->name; // 'Peter'
print $response->result->probability; '0.99'
print $response->result->count; 144
print $response->result->isMale(); true
print $response->result->isFemale(); false
print $response->result->isNotMale(); false
print $response->result->isNotFemale(); true

For batch usage

use Genderize;

$response = Genderize::names(['John', 'Jane'])->country('US')->lang('EN')->get();

foreach($response->result as $row)
{
    print $row->name;
}

Getting information about the request and limits

use Genderize;

$response = Genderize::name('Peter')->get();

print $response->meta->code; // 200 - HTTP response code
print $response->meta->limit; // 1000 - Max number of allowed requests
print $response->meta->remaining; // 950 - Number of requests left
print $response->meta->reset->diffInSeconds(); // Carbon\Carbon - time left till reset

More documentation

Refer to Genderize.io API Documentation for more examples and documentation.

Testing

Run the tests with:

vendor/bin/phpunit

License

The MIT License (MIT). Please see License File for more information.