|
Tjenesten ble i hovedsak startet av Sveinung Marvik. Første URL ble
forkortet 2002-10-07 19:11:53. Etterhvert lagde Sveinung knappe-beskrivelser
for IE og Opera også.
En tid tilbake ble det skrevet et alternativt grensesnitt som et Perl-skript. Dette ble brukt av en IRC-bot. Den 2005-07-28 fant Sveinung ut at det hadde vært lurt med en RSS-feed for dynamisk boklenke for de 10 siste URL-ene. Kode utviklet av Rune Nordbøe Skillingstad, for et helt annet prosjekt, ble resirkulert og tilpasset. På dette tidspunktet ble databasen utvidet til å ha med et tittel-felt. Kode for å innhente dette ble også resirkulert fra et annet prosjekt. Som vanlig når Sveinung utvikler en eller annen web-tjeneste, klarer ikke Rune å holde fingrene av fatet. Først og fremst pga at Perl-skriptet nå ikke la inn tittel i databasen, var det behov for en opprydding i det. Resultatet ble en opprydding i Svenungs kode (flyttet ting over i bibliotek) og et SOAP-API, som er beskrevet nedenfor. Nytt design ble også lansert av Sveinung 2005-07-29, bedre validering av URL-er og finpuss på tittel-fangeren ble også fikset. Denne siden ble også unfanget. Denne dagen var da løsningen fikk fart og masse ble testet og utført. Løsningen er i sin helhet skrevet i PHP, det brukes MySQL til database og av «frekke» moduler nevner vi; CURL og SOAP fra PEAR. Ikonet er laget av Andy Fitzsimon, og lisensiert under Public Domain NO-domenet sponses av Rune Nordbøe Skillingstad, og DNS-tjeneste av Kai Ove Gran. |
Vi har fått uvurderlig hjelp, tips og betatesting fra følgende (i tilfeldig
rekkefølge):
|
|
Her kan Sveinung skrive noe lurt om dette.
Det gjør han nok med tiden. Inntil videre, legger jeg derfor ut et skjermskudd av RSS-feeden
som dynamisk boklenke i Firefox.
|
|
Vi har utviklet et SOAP-API, eller en webservice om man vil, for
KortURL-tjenesten. Denne gir et enkelt grensesnitt for å kunne utvikle
egne programmer som tar ibruk denne forkortningen av URL-er.
Pr. i dag er det bare en funksjon
MERK! på grunn av at SOAP er XML over en eller ennen TCP-protokoll, vil
man måtte gjøre URL-strengen man sender inn til gyldig XML-format. Det vil for det meste
si at man gjør om & til &. F.eks slik i Perl:
Eksempel på veldig simpelt Perl-skript:
#!/usr/bin/perl -lw
use strict;
use SOAP::Lite;
print SOAP::Lite
-> service("http://kurl.no/ws/index.php?wsdl")
-> lagURL("http://no2.php.net/manual/en/function.htmlentities.php");
Mer komplekst Perl-eksempel:
#!/usr/bin/perl -lw
use strict;
use Getopt::Long;
use SOAP::Lite;
my $URL = "";
my $help = undef;
GetOptions("help|h" => \$help);
if ($help) {
print "USAGE: url <url>";
exit(0);
}
if(@ARGV == 1) {
$URL = $ARGV[0];
# Do better URL-validation
if(!($URL =~ /^(?:(?:http(?:s)?|ftp):\/\/)? # proto
(?:[^\W_]+[\.-])+[a-z]{2,4}(?::\d+)*\b # host:port
(?:\/[\w=\.\,\?\&\;\#\~\/\%\-\+]*)?$ # localpart
/ix)) {
print "Probably not kosher URL";
exit(1);
}
if(length($URL) < 28) {
print "Bratt-error: This url will be longer using kurl.";
exit(1);
}
} else {
print "Wrong number of arguments. (url -h for help)";
exit(1);
}
my $urlID = SOAP::Lite
-> service("http://kurl.no/ws/index.php?wsdl")
-> lagURL($URL);
print "Short URL: $urlID";
Enkelt PHP-eksempel:
<?php
require_once("SOAP/Client.php");
class URLServer extends SOAP_Client {
function URLServerPort($path = "http://kurl.no/ws/index.php") {
$this->SOAP_Client($path, 0);
}
function &lagURL($inputString) {
return $this->call("lagURL", $v =
array("inputString" => $inputString),
array("namespace" => "urn:URLServer",
"soapaction" => "urn:URLServer#urlserver#lagURL",
"style" => "rpc",
"use" => "encoded"));
}
}
$w = new URLServerPort();
echo $w->lagURL("http://no2.php.net/manual/en/");
|