Olika namnexempel är ofta förekommande i exempelvis programmeringslitteratur, men de stannar oftast som ett exempel fast än man så ofta behöver dem i olika sorters applikationer eller också annat som är "offline".
Inte allt för sällan när man exempelvis ska göra en databas så behöver man fylla den med exempelkunder för att testa, extremt tråkigt är det att sitta och komma på ett massor med namn som man behöver föra in manuellt.
NamnAPI råder bot på de här problemen problemen.
I NamnAPIs databas så finns de 100 vanligaste tilltalsnamnen för både kvinnor och män, och dessutom de 100 vanligaste efternamnen. Totalt så finns det alltså 20 000 olika kombinationer.
En URL till NamnAPI kan se ut på följande sätt: https://api.namnapi.se/v2/names.xml?gender=both&type=firstname&limit=3
NamnAPI kräver totalt fem parametrar för att returnera namn; api-version, namntyp, kön, antal och datattyp. I exemplet ovanför så hämtar vi alltså tre stycken förnamn, för båda könen med datatypen XML.
v2
(eller v1
, kommer dock att fasas ut. Läs dokumentationen för v1 här.)
xml
json
firstname
surname
both
(default)
male
female
both
(default)
Ett värde mellan 1
och 4000
Den returnerade datan talar ganska mycket för sig själv, det finns bara tre typer att hålla koll på; "firstname", "surname" och "gender". Notera dock att om man väljer att få tillbaka datan i ett XML-format så är varje namn inkapslad i en <name>
-tagg.
Just nu finns det en maxgräns på 4000 namn som man får hämta samtidigt – du får dock lov att göra oändligt många anrop. Om du utav någon anledning skulle behöva fler namn i en och samma hämtning så kontakta @olssonm på Twitter.
Om man skickar med ett ogiltligt värde på en parameter så kommer http-svarskoden vara 400 (bad request), samt en meddelande om vad som orsakade felet (endast i JSON).
Om man vill hämta både manliga och kvinnliga namn så kommer de inte nödvändigtvis vara jämnt fördelade, detta är helt slumpmässigt (man kan dock så klart i sin applikation sortera dem efter jämnt antal).
Exempel-URL: https://api.namnapi.se/v2/names.xml?limit=10&gender=female
$data = "https://api.namnapi.se/v2/names.xml?limit=10&gender=female";
$xml = simplexml_load_file($data);
foreach($xml->name as $name) {
echo $name->firstname;
echo $name->surname;
echo $name->gender;
}
import untangle
obj = untangle.parse('https://api.namnapi.se/v2/names.xml?limit=10&gender=female')
for name in obj.names.name:
print name.firstname.cdata
print name.surname.cdata
print name.gender.cdata
Exempel med untangle
Exempel-URL: https://api.namnapi.se/v2/names.json?limit=20
$data = "https://api.namnapi.se/v2/names.json?limit=20";
$json = file_get_contents($data,0,null,null);
$data = json_decode($json);
foreach($data->names as $names){
echo $names->firstname;
echo $names->surname;
echo $names->gender;
}
from urllib import urlopen
import json
data = urlopen('https://api.namnapi.se/v2/names.json?limit=20').read()
data = json.loads(data)
for name in data['names']:
print name['firstname']
print name['surname']
print name['gender']
var url = "https://api.namnapi.se/v2/names.json?limit=20";
$.ajax({
type: 'GET',
url: url,
dataType: 'jsonp',
success: function(data) {
$.each(data.names, function(i,names){
var string = "<p>"
+ names.firstname + "</br>"
+ names.surname + "</br>"
+ names.gender + "</br>"
+ "</p>";
$(string).appendTo("body");
});
},
jsonp: 'jsonp'
});
Notera att för att kringgå säkerhets-spärren för "cross domain requests" som gäller för Javascript så används JSONP. Detta måste anges som datatyp när anropet görs - annars kommer du att mötas utav en säkerhetsvarning i webbläsaren. Som callback används helt enkelt jsonp
, annars får du ett formateringsfel i Chrome och Firefox.
Skapad av webbutvecklaren Marcus Olsson. För frågor, kontakta mig på Twitter (@olssonm) eller via min webbplats.
Byggd med Lumen och Twitter-bootstrap.
Frågor, synpunkter, förslag eller idéer? Speak your mind.
© 2011-2015 Marcus Olsson. Byggd på en Mac från .