Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Site/API WEB] Raccourcisseur d'URL + API

    6 août 2017 à 22:34:55

    Bonjour à tous, 

    je suis sur OC depuis maintenant quelques années, où j'ai principalement appris le PHP/HTML/CSS/SQL (du moins les bases), que j'ai approfondi par la suite sur d'autres plateformes. Ne travaillant pas dans le développement, je code par plaisir, souvent pour répondre à un besoin ponctuel, aussi bien dans le perso que le pro.

    En savoir plus sur le projet

    Le projet que je viens vous présenter aujourd'hui est très très basique, mais fait partie d'un projet bien plus gros. Ce gros projet est destiné à une utilisation dans mon travail, et en le développant, un besoin c'est fait ressentir. Il m'était nécessaire de pouvoir bénéficier de certains outils pour développer l'application plus conséquente, notamment un raccourcisseur d'URL. C'est ainsi que j'ai développé celui-ci, et j'ai pris la décision de le dissocier du projet pour le rendre accessible à tout le monde. Et pour ce faire, je l'ai développé sous forme d'API.

    Généralités / Avancement

    Le projet en lui-même est fonctionnel et suffisant pour mes besoins sur cet autre projet plus conséquent. Il permet simplement de générer une URL raccourcie et de rediriger le client vers le site désigné. Pas vraiment de nouveautés futuristes ni technologies de l'espace, simplement un système de redirection.

    Le point intéressant c'est la mise en place d'une API REST pour pouvoir être utilisé par tout le monde qui en ressent le besoin, l'utilité.

    Le projet, API comme client web, est développé en HTML/PHP/SQL, sous le framework Slim. Pour le client, j'utilise également Twig comme moteur de template. J'ai également mis en place un système de logger avec Monolog afin de logger les éventuelles erreurs qui peuvent apparaître lors de l'utilisation.

    Objectifs

    Les objectifs premier de ce projet sont très simples : fournir à notre équipe un outil facilement utilisable pour proposer à nos clients des liens propres quelques soient les URL à montrer. Par conséquent, un module a été prévu dans l'admin que je suis en train de développer pour intégrer cet outil très simplement, et le tout est interfacé via l'API.

    Le projet et son originalité

    Je sais très bien que ce projet, il en existe des centaines de milliers sur Internet. Je sais aussi que des API pour ça sont disponibles de partout, mais en faisant ce projet moi-même, je maîtrise les données qui seront récoltées lors de son utilisation, à savoir : rien !

    Les liens sont enregistrés ainsi que leurs tokens (id raccourcis) et date d'ajout. N'ayant besoin de rien d'autre, aucune autre donnée supplémentaire n'est enregistrée.

    L'API est quant à elle ouverte à tout le monde. Je suis en train de rédiger la documentation, que je rendrais accessible à tous durant l'été (je dois finir mon autre gros projet et développer encore 2 autres outils).

    Etant pour le moment sur un mutualisé, j'ai en place un système de token pour identifier l'utilisateur de l'API, qui me permet de limiter un nombre de requêtes journalières. Si vous voulez tester avant la mis en service finale, je peux vous en fournir un temporaire (contactez-moi en MP).

    Je précise que ce service est gratuit, sans publicité, et que je cherche à optimiser au maximum.

    http://url.kwo.re

    Le client du service est en anglais (en même temps, j'ai pas pris la peine de rédiger un roman), ainsi que l'API (les éventuels messages d'erreur).

    Evolutions

    J'envisage de mettre en place un système de protection par mot de passe sur les liens, afin de protéger une URL. J'ai aussi d'autres idées, mais pour le moment je me concentre sur mon autre application. Si vous pensez, imaginez, quelque chose d'autre, n'hésitez pas à m'en parler.

    Je vous demanderais de bien vouloir tester le service, essayer de raccourcir des URL et de l'utiliser. Ceci me permettra de détecter d'éventuels bugs pour corriger avant la mise en service dans mon entreprise 

    Merci d'avance pour votre participation : http://url.kwo.re

     Ealon

    -
    Edité par Ealon 6 août 2017 à 22:53:35

    • Partager sur Facebook
    • Partager sur Twitter
    Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
      8 août 2017 à 13:19:29

      Le site me génère un lien http://url.kwo.dev/a36ca137 qui ne fonctionne pas...

      Alors que le lien .re fonctionne. Erreur d'affichage :)

      -
      Edité par <?php?> 8 août 2017 à 13:20:30

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        8 août 2017 à 13:53:00

        Moi aussi ça ne fonctionne pas !
        • Partager sur Facebook
        • Partager sur Twitter
          24 août 2017 à 16:35:34

          Bonjour à tous, 

          Ayant été loin de la civilisation durant 2 semaines, je rattaque aujourd’hui.

          En effet, il s'avère qu'un petit soucis de détection de serveur ne faisait pas son boulot et le lien renvoyé ne pointait pas sur le site mais sur sa version locale de développement (ce qui ne me posait aucun problème en interne, je ne pouvais pas m'en rendre compte).

          Ceci est maintenant corrigé et tout est fonctionnel. 

          N'hésitez pas à utiliser ce service pour le tester et me faire parvenir vos retours (même si je ne réponds pas, je lis tout ce qui passe).

          Je vais travailler cette fin de semaine à la mise en place de protections des redirections par mot de passe et/ou par captcha. Suite à quoi je passerais à la rédaction de la documentation de l'API, ainsi qu'à son ouverture publique pour tests.

          Si vous voulez déjà une clé pour tester, n'hésitez pas à me demander par MP.

          Merci encore pour vos retours et vos critiques, 

          • Partager sur Facebook
          • Partager sur Twitter
          Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
            1 septembre 2017 à 22:26:14

            Bonsoir, 

            Je refais un petit UP.

            Je suis en train de bosser sur le code de l'API pour le rendre encore plus simple et robuste. Je refactorise pour me permettre plus de souplesse dans le développement.

            N'hésitez pas à tester à l'adresse suivante : http://www.kwo.re ou encore http://url.kwo.re et à me faire vos retours.

            Je vais intégrer un outil de génération rapide que je vous présenterais à la fin du weekend.

            Bonne soirée,

            Ealon

            • Partager sur Facebook
            • Partager sur Twitter
            Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
              2 septembre 2017 à 20:28:18

              Perso, je clique sur "API Access", ça ma ramène sur la même page.

              La création de comptes permettant de suivre les nombres de cliques, des statistiques sur les 7 derniers jours etc ... est-elle envisagée ? De même pour les liens "personnalisés" (ex: je souhaite utiliser http://url.kwo.re/OpenClassroom pour être redirigé ici) ?

              • Partager sur Facebook
              • Partager sur Twitter
                3 septembre 2017 à 0:06:01

                Merci pour ta réponse,

                en effet, l'accès à l'API est pour le moment desactivé au public. Je dois encore travailler sur quelques points et fonctionnalités, et alimenter la documentation. Une fois ceci fait, l'accès sera ouvert d'abord en bêta puis au public.

                La création de compte en vu de statistiques concernant les liens ne faisait pas particulièrement partie du programme, mais peut être envisagée par la suite oui, pourquoi pas. 

                Le seul point bloquant à ceci est le fait que je ne souhaitais pas collecter de données de navigation. Or pour produire des statistiques fiables, il me faudra en collecter un minimum pour assurer leurs pertinence. 

                En ce qui concerne les liens personnalisés il seront disponibles prochainement, tout comme ceux protégés par mots de passe ou captcha. 

                D'autres fonctionnalités vont être déployées suite à la refonte du code et du site en lui même. Je priorise la rapidité de création d'un lien ainsi que la redirection en faisant un effort en UI et en architecture BDD. 

                Pour information, afin de garder une base de redirection saine, le site dispose d'un algo faisant le tri des liens pour supprimer ceux qui sont HS en renvoyant une erreur quelconque. Ainsi seuls les liens valides sont conservés.  

                Je continuerai à poster ici les avancées et repondrai aux questions, donc n'hésitez pas ;)

                Ealon

                • Partager sur Facebook
                • Partager sur Twitter
                Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
                  8 septembre 2017 à 21:01:27

                  Bonsoir à tous, 

                  Après différents retours que j'ai pu collecter par ci par là concernant ce projet, et m'étant aperçu que mon API partait dans la mauvaise direction, j'ai décidé de repartir à zéro (enfin presque). L'architecture telle qu'elle avait été posée lors du début du développement ne me permettait pas de faire évoluer l'API de la manière dont je le voulais.

                  J'ai donc mis de côté le développement de certaines fonctionnalités pour recentrer mes efforts sur une nouvelles version de l'API, plus performante et moins complexe à utiliser / documenter. Un nouveau design est aussi au programme.

                  Pour cette nouvelle version, je prendrais en compte certaines des demandes, notamment celles à propos des statistiques afin de fournir un service permettant de satisfaire le plus de monde possible.

                  Le service est toujours maintenu tel quel pour le moment. Je viendrais régulièrement vous tenir informé des évolutions.

                  Si vous voulez un aperçu du nouveau design : http://url.kwo.re/b562f665

                  N'hésitez pas à essayer le service et à venir me proposer des idées !

                  Ealon

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
                    10 septembre 2017 à 22:26:07

                    Bonsoir tous, 

                    Juste un petit post pour vous donner l'avancement du site. J'ai bossé encore ce weekend sur l'interface, que je souhaite valider avant de m'attaquer à la refonte de l'API. Ainsi l'interface sera en place et je pourrais commencer à récolter des retours. Les améliorations et nouveautés API viendront par la suite lors d'une grosse MAJ.

                    J'ai également mis en place un certificat SSL pour sécuriser le site (une demande m'avait été faite à ce niveau). C'est donc chose faite depuis aujourd’hui.

                    Je bosse en parallèle sur un autre projet, beaucoup plus conséquent (et urgent, c'est pour mon boulot), donc je partage mon temps entre les deux. C'est pourquoi les choses n'avancent pas aussi vite que prévu.

                    En attendant, je vous mets une dernière version du design (homepage) : https://url.kwo.re/df0e17ac

                    Merci pour vos (éventuels) retours.

                    E

                    -
                    Edité par Ealon 10 septembre 2017 à 22:27:17

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
                      18 septembre 2017 à 23:06:33

                      Bonsoir,

                      Un petit passage pour vous énoncer les avancées à ce jour.

                      En ce qui concerne l'interface, celle-ci avance bien. Je dirais que j'ai pratiquement abouti une version exploitable de l'interface, que je suis en train de tester et optimiser, de manière statique (code HTML/CSS/JS uniquement pour l'instant) afin de m'assurer du comportement responsive. Je travaille encore sur l'interface de façon à anticiper de nouvelles fonctionnalités par la suite, dans le but de ne pas tout refactoriser lors de leur implémentation.

                      Je vais m'attaquer à l'API d'ici peu. Je vais, comme précisé plus haut, tout reprendre "from scratch" pour partir sur une base solide. La priorité sera de fournir un service rapide et intuitif, sans négliger les performances et fonctionnalités attendues.

                      De nouvelles fonctionnalités seront normalement accessibles dès la sortie de cette mise à jour. D'autres arriveront régulièrement selon les retours des utilisateurs.

                      Pour la petite information, il y a à cette heure plus de 230 URL gérées par le service, pour près de 2 100 accès à l'API (compteur comprenant les générations de liens et les redirections). Le maximum sera fait pour conserver les URL deja générées lors de la migration.

                      Passez une bonne soirée,

                      Ealon

                      PS : pas de screen ce soir, je suis sur tablette et n'ai pas accès à mon serveur de développement pour le moment.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
                        19 septembre 2017 à 16:09:44

                        Pour gagner du temps lors de l'accès à la BDD, tu peux sauvegarder l'url associée à un id dans le cache de ton serveur. Par exemple l'id a36ca137 redirige vers google.fr. 

                        Sachant que le cache est beaucoup plus rapide qu'un accès à la bdd, tu peux gratter de précieuse milli-seconde lors de la redirection !

                        Pour du cache, tu peux regarder du côté de Memcached !

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Si vous voulez de l'aide, postez votre code.
                          19 septembre 2017 à 22:29:59

                          Merci du retour Bamso ;)

                          Un système de mise en cache est évidemment prévu pour fluidifier le service, au moins à l'affichage des données de statistiques et pour une partie de la redirection.

                          Je suis en train de peaufiner l'interface de la homepage pour gérer les options facultatives (toutes accessibles de base dans le service).

                          Je posterais des screens complets plus tard dans la semaine, je suis très tatillon sur la mise en page :/ Et bosser sur du Bootstrap peut rendre la vie plus simple, mais parfois c'est à exploser le clavier quand on cherche la petite bête ...

                          Je me dis qu'une fois l'interface de base terminée, je pourrais la mettre en "bêta" (sans action sur l'API) afin de récolter des retours sur le visuel et l'ergonomie :)

                          En attendant : un screen du formulaire que je dois encore ajuster.

                          Bonne soirée, 

                          Ealon

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP

                          [Site/API WEB] Raccourcisseur d'URL + API

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown