ΠΕΛΑΤΕΣ API & ΠΑΡΑΔΕΙΓΜΑΤΑ ΚΩΔΙΚΑ
Επίλεξε τη γλώσσα προγραμματισμού σου για να δεις οδηγίες εγκατάστασης και παραδείγματα κώδικα
PHP with Composer
Official client library
PHP Legacy
Without Composer
TypeScript
Type-safe client
JavaScript
Node.js & Browser
Python
Data science ready
R
Statistical computing
Java
Enterprise ready
C#
.NET integration
PHP with Composer
View on GitHubΗ επίσημη βιβλιοθήκη PHP client προσφέρει έναν εύκολο τρόπο για να ενσωματώσεις το Gender API στις PHP εφαρμογές σου χρησιμοποιώντας τον διαχειριστή πακέτων Composer.
Πρώτα εγκατάστησε τη βιβλιοθήκη μας με το composer:
$ composer require gender-api/client
use GenderApi\Client as GenderApiClient;
try {
$apiClient = new GenderApiClient('insert your API key');
// Query a single name
$lookup = $apiClient->getByFirstName('elisabeth');
if ($lookup->genderFound()) {
echo $lookup->getGender(); // female
}
// Query a full name and improve the result by providing a country code
$lookup = $apiClient->getByFirstNameAndLastNameAndCountry('Thomas Johnson', 'US');
if ($lookup->genderFound()) {
echo $lookup->getGender(); // male
echo $lookup->getFirstName(); // Thomas
echo $lookup->getLastName(); // Johnson
}
} catch (GenderApi\Exception $e) {
// Name lookup failed due to a network error or insufficient remaining requests
// left. See https://gender-api.com/en/api-docs/error-codes
echo 'Exception: ' . $e->getMessage();
}
Δες την πλήρη τεκμηρίωση του πελάτη εδώ:
PHP Legacy
Αυτόνομη υλοποίηση PHP χωρίς εξάρτηση από το Composer, ιδανική για παλαιότερα projects ή απλές ενσωματώσεις.
function getGender($firstname) {
$myKey = 'insert your server key here';
$data = json_decode(file_get_contents(
'https://gender-api.com/get?key=' .
$myKey .
'&name=' . urlencode($firstname)));
return $data->gender;
}
echo getGender('markus'); //Output: male
TypeScript
View on GitHubType-safe client για TypeScript projects με πλήρη υποστήριξη IntelliSense και αυστηρό έλεγχο τύπων.
Πρώτα εγκατάστησε τη βιβλιοθήκη μας με το npm:
$ npm i gender-api.com-client --save
import {Client as GenderApiClient, ResultSingleName} from "gender-api.com-client";
const genderApiClient = new GenderApiClient("your API key");
try {
genderApiClient.getByFirstName('theresa', (response: ResultSingleName) => {
console.log(response.gender); //female
console.log(response.accuracy); //98
});
genderApiClient.getByFirstNameAndCountry('john', 'US', (response: ResultSingleName) => {
console.log(response.gender); //male
console.log(response.accuracy); //99
});
}
catch(e) {
console.log('Error:', e);
}
Δες την πλήρη τεκμηρίωση του πελάτη εδώ:
JavaScript
View on GitHubΕύχρηστος JavaScript client για Node.js και browser περιβάλλοντα, με API βασισμένο σε Promises.
Πρώτα εγκατάστησε τη βιβλιοθήκη μας με το npm:
$ npm i gender-api.com-client --save
try {
var GenderApi = require('gender-api.com-client');
var genderApiClient = new GenderApi.Client('your api key');
genderApiClient.getByFirstName('theresa', function (response) {
console.log(response.gender); //female
console.log(response.accuracy); //98
});
genderApiClient.getByFirstNameAndCountry('john', 'US', function (response) {
console.log(response.gender); //male
console.log(response.accuracy); //99
});
}
catch(e) {
console.log('Error:', e);
} Δες την πλήρη τεκμηρίωση του πελάτη εδώ:
Python
Pythonic API client με καθαρό, ευανάγνωστο κώδικα – ιδανικός για data science, machine learning και web εφαρμογές.
Python 3.*
import json
from urllib.request import urlopen
myKey = "insert your server key here"
url = "https://gender-api.com/get?key=" + myKey + "&name=kevin"
response = urlopen(url)
decoded = response.read().decode('utf-8')
data = json.loads(decoded)
print( "Gender: " + data["gender"]); #Gender: male
Python 2.*
import json
import urllib2
myKey = "insert your servery key here"
data = json.load(urllib2.urlopen("https://gender-api.com/get?key=" + myKey + "&name=markus"))
print "Gender: " + data["gender"]; #Gender: male
R
Ιδανικό για στατιστική ανάλυση και data science workflows σε R, με απρόσκοπτη ενσωμάτωση.
$ apt install r-cran-dplyr r-cran-httr2 r-cran-tibble r-cran-jsonlite
#' Gender API Client (single name only)
#'
#' Gets gender by a first name, optionally filtered by country.
#'
#' @param name A character string containing a single first name.
#' @param country Optional two-letter country code, see: https://gender-api.com/en/api-docs
#' @param api_key Your Gender-API.com API key.
#'
#' @return A tibble containing the estimated gender, number of samples,
#' accuracy (0–100), and the request duration in ms.
#' @export
#'
#' @examples
#' \dontrun{
#' gender("Andrea", country="US", api_key="YOUR_KEY")
#' gender("Andrea", country="IT")
#' }
#'
library(httr2)
library(dplyr)
gender <- function(name, country = NULL, api_key = Sys.getenv("GENDER_API_KEY")) {
if (missing(name) || length(name) != 1) {
stop("`name` must be a single string.")
}
if (is.null(api_key) || api_key == "") {
stop("API key is required. Set with `Sys.setenv(GENDER_API_KEY='your_key')` or pass via `api_key`.")
}
args <- list(
key = api_key,
name = name
)
if (!is.null(country)) args<- country
resp <- request("https://gender-api.com/get") %>%
req_url_query(!!!args) %>%
req_perform()
if (resp_status(resp) >= 400) {
stop("Request failed: ", resp_status_desc(resp))
}
out <- resp_body_json(resp, simplifyVector = TRUE)
tibble::as_tibble(out)
}
gender("Andrea", country="US", api_key="<YOUR API KEY>")
Java
Java υλοποίηση έτοιμη για enterprise, για ανθεκτικές και scalable εφαρμογές με σωστό error handling.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
public class Main {
public static void main(String[] args) {
try {
String myKey = "insert your server key here";
URL url = new URL("https://gender-api.com/get?key=" + myKey + "&name=markus");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Error: " + conn.getResponseCode());
}
InputStreamReader input = new InputStreamReader(conn.getInputStream());
BufferedReader reader = new BufferedReader(input);
Gson gson = new Gson();
JsonObject json = gson.fromJson(reader, JsonObject.class);
String gender = json.get("gender").getAsString();
System.out.println("Gender: " + gender); // Gender: male
conn.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
.NET ενσωμάτωση για C# εφαρμογές με πλήρη υποστήριξη async/await και σύγχρονα C# features.
Κατεβάστε ένα δείγμα έργου εδώ:
Τεκμηρίωση:
https://github.com/microknights/Gender-API// Contributed Client: https://github.com/microknights/Gender-API
using MicroKnights.Gender_API;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace GenderAPI
{
class Program
{
public static async Task RunTests(GenderApiClient client)
{
var responseStats = await client.GetStatistics();
if( responseStats.IsSuccess ) {
Console.WriteLine($"IsLimitReached: {responseStats.IsLimitReached}");
Console.WriteLine($"Remaning requests: {responseStats.RemaningRequests}");
const string Name = "Frank Nielsen";
var responseName = await client.GetByNameAndCountry2Alpha(Name, "DK");
if( responseName.IsSuccess ) {
Console.WriteLine($"{Name} is {responseName.GenderType.DisplayName}");
}
else {
Console.WriteLine($"ERRORS: {responseName.ErrorCode}-{responseName.Exception.Message}");
}
}
else {
Console.WriteLine($"ERRORS: {responseStats.ErrorCode}-{responseStats.Exception.Message}");
}
}
public static Task UsingServiceProvider(string apiKey){
// client is thread-safe, and can be used static.
var serviceProvider = new ServiceCollection()
.UseGenderAPI(apiKey)
.BuildServiceProvider();
return RunTests(serviceProvider.GetRequiredService<GenderApiClient>());
}
public static Task PlainConsole(string apiKey){
// client is thread-safe, and can be used static.
var client = new GenderApiClient(
new HttpClient
{
BaseAddress = new Uri("https://gender-api.com")
},
new GenderApiConfiguration
{
ApiKey = apiKey
});
return RunTests(client);
}
static async Task Main(string[] args)
{
var apiKey = "?";
await PlainConsole(apiKey);
await UsingServiceProvider(apiKey);
}
}
}
Συνεισφορές κοινότητας
Οι άδειες ενδέχεται να διαφέρουν. Τα πνευματικά δικαιώματα ανήκουν στον εκάστοτε Συγγραφέα.
Έτοιμος να ξεκινήσεις
; Κάνε δωρεάν εγγραφή και πάρε 100 αιτήματα κάθε μήνα, χωρίς να χρειάζεται πιστωτική κάρτα.