Daily Archives: 2010.06.8. 4:59

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:

http://tinyurl.com/api-create.php?url=http://www.msdnkk.hu

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

http://tinyurl.com/36q7yh8

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

 

Technorati-címkék: ,,
Advertisements