All Projects → dejanstojanovic → Short-Url

dejanstojanovic / Short-Url

Licence: MIT license
.NET implementation of URL shortening service

Programming Languages

C#
18002 projects
Classic ASP
548 projects

Build status

Short Url

.NET implementation of URL shortening service

##How to set it up

All you need is to build and publish WebAPI to your IIS host server and configure database connection string in web.config file. On the first run database will be automatically created.

<configuration>
  <connectionStrings>
    <add name="ShortUrl" connectionString="Server=<SQL-SERVER-INSTANCE>;Database=ShortUrl;User Id=<USERNAME>;Password=<PASSWORD>;" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

##How to use

The service cosists of two basic functionalities:

####Create short url Simple post of long URL to controller action "SHORT" will create record with short URL key and retrieve it back

POST /Short/ HTTP/1.1
Host: localhost:37626
Content-Type: application/json
Cache-Control: no-cache

"http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api"

If the short URL already exists with the short URL key then existing short URL key is retrieved.

####Navigate to short url Passing the short URL key to service in GET request will return redirection header values (including long URL string) order to navigate browser to the long URL assigned to the key.

GET /1639fe HTTP/1.1
Host: localhost:37626
Content-Type: application/json
Cache-Control: no-cache

##Settings

Service settings consists of just few web.config key values in appSeetings sections. They are controlling behaviour of URL shortening web service.

Name Default value Description
CheckUrlAvailability False Check if URL is available (returns 200 OK response) before adding to database
CheckUrlAvailabilityTimeout 5 How many seconds to wait for a response when checking URL availability
KeyLength 6 Character length of short URL key for added URLs
CacheTimeout 5 How many minutes to keep key and URL after last request
<configuration>
  <appSettings>
    <add key="CheckUrlAvailability" value="False"/>
    <add key="CheckUrlAvailabilityTimeout" value="5"/>
    <add key="KeyLength" value="6"/>
    <add key="CacheTimeout" value="5"/>
  </appSettings>
</configuration>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].