Opis pól type, value, country, forceToGenderize i ai_mode w GenderAPI V2 oraz różnic między parametrami GET a treścią JSON żądań POST.
Parametry pojedynczej predykcji
Pola opcjonalne należy pominąć, jeśli nie są używane; nie wysyłaj null ani pustych ciągów znaków zamiast country lub options. Wartości logiczne JSON muszą być wartościami true lub false, a nie ciągami znaków. Obsługiwany jest tekst UTF-8; nazwy nie muszą być transliterowane na ASCII.
GET używa type, value, country, forceToGenderize i ai_mode bezpośrednio w ciągu zapytania, plus opcjonalnie key. Zakoduj wartości za pomocą kodera parametrów URL klienta HTTP; na przykład @ staje się %40. W przypadku wartości logicznych GET wyślij true lub false. Nieznane pola i nieprawidłowe wartości są odrzucane.
Pole JSON
Typ
Reguła
type
string
Wymagane dla POST: name, email lub username. GET domyślnie to name.
value
string
Wymagane. 1–254 znaki; niepuste, bez znaków kontrolnych. Wartości e-mail muszą być prawidłową składnią e-maila.
country
string
Opcjonalny kod ISO 3166-1 alpha-2 wykonany wielkimi literami, na przykład TR lub US. Wyszukiwanie specyficzne dla kraju może opierać się na globalnym zbiorze danych.
forceToGenderize
boolean
Opcjonalnie; wartość domyślna to false. Najpierw przeszukaj zbiór danych. Jeśli nie można określić płci, użyj sztucznej inteligencji do zinterpretowania pseudonimu. Obsługiwane dla wszystkich trzech typów wejść.
options.ai_mode
string
off, fallback lub always. Domyślnie fallback dla pojedynczych żądań i off dla pozycji wsadowych.
id
string
Opcjonalny identyfikator składający się z 1–64 znaków w treści POST JSON. Musi być unikalny w obrębie partii i jest zwracany wraz z wynikiem partii. Pojedyncze żądania akceptują ten identyfikator, ale nie dołączają go do odpowiedzi. Zapytania GET tego nie obsługują.
Przed wysłaniem zapytania
Wyślij JSON do POST https://api.genderapi.io/api/v2/gender. Użyj istniejącego klucza API w Authorization: Bearer YOUR_API_KEY i Content-Type: application/json. Każde żądanie jest przetwarzane niezależnie.
Wybierz język w przykładowym kodzie. Przed uruchomieniem ustaw GENDERAPI_API_KEY w środowisku procesowym. Brakujące lub nierozpoznane klucze mogą skorzystać z udostępnionej wersji próbnej IP, więc podczas integracji konta potwierdź, że meta.access.mode to api_key.
W tym przykładzie użyto wspólnych pól żądań do wyszukiwania nazw. Zmień type i value na adres e-mail lub nazwę użytkownika lub ustaw options.ai_mode i forceToGenderize zgodnie z powyższym opisem.
Wybierz język programowania.Skonfiguruj klucz API, następnie uruchom przykład na swoim serwerze.
Każde żądanie prognozy jest nową płatną operacją, włączając ponowne próby. W tych przykładach nie następuje automatycznie ponowna próba. Sprawdź status płatności przed wysłaniem kolejnej prośby.
Zanim uruchomisz: dostęp i obsługa błędów
Uruchom te przykłady na swoim serwerze. Ustaw GENDERAPI_API_KEY w środowisku procesowym na istniejący klucz API. Potwierdź, że meta.access.mode to api_key: nierozpoznany klucz może wrócić do wersji próbnej IP.
Odpowiedzi HTTP 4xx i 5xx JSON zachowują treść błędu i zwracają niezerowy status wyjścia. Przed ponowną próbą sprawdź code, action i meta.usage.billing_status.
import jsonimport osimport sysimport urllib.errorimport urllib.requestapi_key = os.environ.get("GENDERAPI_API_KEY")if not api_key: raise RuntimeError("Set GENDERAPI_API_KEY")body = json.loads("{\"type\":\"name\",\"value\":\"Onur\",\"country\":\"TR\"}")class NoRedirect(urllib.request.HTTPRedirectHandler): def redirect_request(self, req, fp, code, msg, headers, newurl): return Nonerequest = urllib.request.Request( "https://api.genderapi.io/api/v2/gender", method="POST", data=json.dumps(body).encode("utf-8"), headers={ "Authorization": "Bearer " + api_key, "Content-Type": "application/json", },)opener = urllib.request.build_opener(NoRedirect())try: response = opener.open(request, timeout=30)except urllib.error.HTTPError as error: response = error # Keep the Problem Details body on non-2xx responses.with response: status = response.status raw = response.read().decode("utf-8") if "json" not in response.headers.get("Content-Type", ""): raise RuntimeError(f"HTTP {status}: expected a JSON response") result = json.loads(raw)print(json.dumps(result, indent=2), file=sys.stderr if status >= 300 else sys.stdout)if not 200 <= status < 300: sys.exit(1) # Inspect code, action and billing before retrying.# For batches, inspect every item even when HTTP status is 200.
using System;using System.Net.Http;using System.Net.Http.Headers;using System.Text;using System.Text.Json;string RequiredEnv(string name) => !string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable(name)) ? Environment.GetEnvironmentVariable(name)! : throw new InvalidOperationException($"Set {name}");var apiKey = RequiredEnv("GENDERAPI_API_KEY");using var handler = new HttpClientHandler { AllowAutoRedirect = false };using var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };using var request = new HttpRequestMessage(HttpMethod.Post, "https://api.genderapi.io/api/v2/gender");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);request.Content = new StringContent("{\"type\":\"name\",\"value\":\"Onur\",\"country\":\"TR\"}", Encoding.UTF8, "application/json");using var response = await client.SendAsync(request);var raw = await response.Content.ReadAsStringAsync();if (!(response.Content.Headers.ContentType?.MediaType?.Contains("json") ?? false)) throw new InvalidOperationException($"HTTP {(int)response.StatusCode}: expected JSON");using var result = JsonDocument.Parse(raw);if (!response.IsSuccessStatusCode){ Console.Error.WriteLine(result.RootElement); // Preserve Problem Details. Environment.ExitCode = 1;}else{ Console.WriteLine(result.RootElement); // For batches, inspect every item even on HTTP 200.}