NamnAPI.se

Utvecklingen av version 1 av NamnAPI är nerlagd. API:et kommer att fungera tills vidare men kan komma att stängas ner utan förvarning.

Vänligen använd version 2.

Varför?

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 par dussin namn som man för in manuellt.

Eller så kanske man ska ha en reklamkampanj där man behöver massor namn, vore det inte bättre att plocka hem ett par slumpmässiga istället för att stjäla dem?

NamnAPI råder bot på båda dessa 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.

Funktioner

Välj om du endast vill ha förnamn, efternamn eller båda.
Välj om du endast vill ha kvinnliga namn, manliga namn eller båda.
Välj om du vill hämta namnen i XML, eller JSON-format.
Upp till 20 000 olika kombinationer.
Fritt att använda till vad du vill, hämta hur många du vill.

Hur man använder NamnAPI

En URL till NamnAPI kan se ut på följande sätt: http://api.namnapi.se/v1/firstname/both/3/xml

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.

Tillåtna inparametrar

För api-version

I nuläget finns det bara en version, v1

För namntyp

firstname
surname
both

För kön

male
female
both

För antal

Ett värde mellan 1 och 4000

För datatyp

xml
json

Returnerad data

Den returnerade datan talar ganska mycket för sig själv, det finns bara tre typer att hålla koll på; "firstname", "surname" och "sex". Notera dock att om man väljer att få tillbaka datan i ett XML-format så är varje namn inkapslad i en <name>-tagg

Övrigt

Notera att alla tecken måste skrivas med gemener. Just nu finns det också en maxgräns på 4000 namn som man får hämta samtidigt. Om du utav någon anledning skulle behöva fler så kontakta @olssonm på Twitter.

Om man skickar med en otillåten parameter så kommer http-svarskoden vara 400 (bad request) oavsett vad felet är.

Om man vill hämta både manliga och kvinnliga namn så kommer de inte nödvändigtvis vara jämnt fördelade.

Exempel

Exempel 1 (JSON)

Exempel-URL: http://api.namnapi.se/v1/both/both/30/json

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.

För att parse:a resultatet med jQuery:

	<script>
		var url = "http://api.namnapi.se/v1/both/both/30/json";
		$.ajax({                                                
		    type: 'GET',    			                                       
		    url: url,
		    dataType: 'jsonp',                                  
		    success: function(data) { 
		       	$.each(data.names, function(i,names){
			       	var row =
			       	"<tr>"
			       	+"<td>"+names.firstname+"</td>"
			       	+"<td>"+names.surname+"</td>"
			       	+"<td>"+names.sex+"</td>"
			       	+"</tr>"
			       	$(row).appendTo(".table");
				});
			},
			jsonp: 'jsonp'
		});
	</script>

För att parse:a resultatet med PHP:

	$data = "http://api.namnapi.se/v1/both/both/30/json";
	$json = file_get_contents($data,0,null,null);
	$output = json_decode($json);
	
	foreach($output->names as $names){
		echo "{$names->firstname}\n";
		echo "{$names->surname}\n";
		echo "{$names->sex}\n";
	}

Exempel 2 (XML)

Exempel-URL: http://api.namnapi.se/v1/firstname/male/10/xml

För att parse:a resultatet med PHP (med SimpleXML, kräver PHP 5.0 eller nyare):

	$data = "http://api.namnapi.se/v1/firstname/male/10/xml";
	$xml = simplexml_load_file($data);
	
	foreach($xml->children() as $child) {
		echo $child->firstname."\n";
		echo $child->sex."\n";
  	}

Kommer snart

Möjligheten att få helt unika namn.

Möjligheten att hämta slumpmässiga användarnamn, lösenord och e-postadresser.

Mer logiska parametrar, i stil med: ?gender=male&nametype=surname.

Om

Den som har skapat NamnAPI är Marcus Olsson. För frågor - kontakta Marcus på Twitter, @olssonm.

Tekniker som är använda är PHP och MySQL. Byggt på Slim och för CSS:en står Twitter Bootstrap.

Tack till @antaru_, @andreaskrohn och @tobiassjosten för feedback och testning.

Kommentera

Frågor, synpunkter, förslag eller idéer? Speak your mind.

blog comments powered by Disqus

© 2011 Marcus Olsson. Byggd på en .