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 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.

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/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.

Tillåtna inparametrar

För api-version

v2 (eller v1, kommer dock att fasas ut. Läs dokumentationen för v1 här.)

För datatyp

xml
json

För namntyp

firstname
surname
both (default)

För kön

male
female
both (default)

För antal

Ett värde mellan 1 och 4000

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 "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.

Övrigt

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

XML

Exempel-URL: http://api.namnapi.se/v2/names.xml?limit=10&gender=female


	$data = "http://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('http://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

JSON

Exempel-URL: http://api.namnapi.se/v2/names.json?limit=20


	$data = "http://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('http://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 = "http://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.

Om NamnAPI

Skapad av webbutvecklaren Marcus Olsson. För frågor, kontakta mig på Twitter (@olssonm) eller via min webbplats.

Byggd med Lumen och Twitter-bootstrap.

Kommentarer

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

© 2011-2015 Marcus Olsson. Byggd på en Mac från .