Back to projects
May 01, 2025
3 min read

Raccourcisseur d'URL en C# et ASP.NET Core

Construction d'un service de raccourcissement d'URL de A à Z avec C# et ASP.NET Core, incluant une API REST documentée avec Swagger et une base de données PostgreSQL.

Ce projet était un défi personnel pour apprivoiser l’écosystème C#/.NET. L’objectif était de construire un service web fonctionnel et moderne de A à Z : un raccourcisseur d’URL. C’était l’occasion parfaite de mettre en pratique les concepts clés d’ASP.NET Core, de la gestion de base de données avec Entity Framework Core à la documentation d’API avec Swagger.

Swagger UI pour l'API du raccourcisseur

Fonctionnalités Clés

Le service, bien que simple en apparence, repose sur une base technique solide et offre les fonctionnalités essentielles :

  • Raccourcissement d’URL : Une route d’API dédiée permet de soumettre une URL longue et de recevoir en retour un code court unique généré aléatoirement.
  • Redirection Transparente : Lorsqu’un utilisateur accède à l’URL courte, le service le redirige instantanément et de manière transparente vers l’URL originale correspondante.
  • API Documentée avec Swagger : L’intégration native de Swagger (OpenAPI) génère une documentation interactive et claire pour toutes les routes de l’API. Cela rend l’API extrêmement facile à comprendre, à tester et à intégrer pour d’autres développeurs.
  • Persistance avec PostgreSQL : Les correspondances entre les codes courts et les URL longues sont stockées de manière fiable dans une base de données PostgreSQL, un système de gestion de base de données relationnelle open-source puissant et réputé.

Swagger UI pour l'API du raccourcisseur

L’Architecture Technique

Le projet a été construit en suivant les meilleures pratiques de l’écosystème .NET :

  • ASP.NET Core : Le framework web de Microsoft a été utilisé pour construire l’API RESTful, gérer le routage et servir l’interface utilisateur de base.
  • Entity Framework Core : Cet ORM (Object-Relational Mapper) a servi de pont entre le code C# et la base de données PostgreSQL. Il simplifie grandement les opérations de lecture et d’écriture en base de données et gère les migrations de schéma de manière efficace (dotnet ef database update).
  • Déploiement simple : Le projet est structuré pour être facilement lancé en local avec quelques commandes dotnet, ce qui est idéal pour le développement et les tests.

Une Fondation pour l’Avenir

Ce projet n’est pas une finalité, mais une base solide. Les prochaines étapes envisagées pour l’enrichir incluent :

  • Suivi des statistiques de clics pour chaque lien.
  • La possibilité pour les utilisateurs de créer des codes courts personnalisés.
  • Une fonction d’expiration automatique des liens après une certaine période.
  • Le développement d’un tableau de bord d’administration en React ou Vue.js pour une gestion avancée des URL.

Ce projet a été une excellente expérience d’apprentissage, me permettant de monter en compétence sur un écosystème technologique majeur et de construire un service utile et extensible.