URL rövidítés kódból 1 – TinyURL
Az egyik projektünkben string hossz limitek között vergődve arra jutottunk, hogy a felhasználó által megadott URL-ek rövidítésével nyerünk pár karakternyi helyet. Nosza meg is néztük a TinyURL URL rövidítő szolgáltatást és szembetaláltuk magunkat a világ legegyszerűbb API-jával.
Na, vajon milyen technológiát választ egy olyan cég, aki a webes szolgáltatását tényleg minden fajta kliens számára biztosítani szeretné? Manapság természetesen REST-et.
És vajon hogy néz ki a legegyszerűbb REST interfész egy string bemenettel és egy string kimenettel? Így:
A legszebb az egészben, hogy a válasz minden körítés nélkül mindössze ennyi:
HTTP/1.1 200 OK
X-Powered-By: PHP/5.3.2
Content-type: text/plain
Connection: close
Date: Tue, 08 Jun 2010 04:40:16 GMT
Server: TinyURL/1.6
Content-Length: 23
Mindez .NET-ből némi prefixeléssel és URL kódolással:
internal static class TinyUrlService { const string SERVICEFORMAT = @"http://tinyurl.com/api-create.php?url={0}"; internal static string Shorten( string longUrl ) { if( !longUrl.StartsWith( "http://", StringComparison.OrdinalIgnoreCase ) ) { longUrl = "http://" + longUrl; } string serviceUrl = String.Format( CultureInfo.InvariantCulture, SERVICEFORMAT, HttpUtility.UrlEncode( longUrl ) ); return new WebClient().DownloadString( serviceUrl ); } }
Erre mondta Einstein, hogy “Mindent a lehető legegyszerűbben kell csinálni, de egy fokkal sem egyszerűbben.”
MSDN Kompetencia Központ