GitHub API: dynamische projecten pagina
Ik heb vandaag wat geƫxperimenteerd met de GitHub API. Een API is een manier om data uit te wisselen tussen verschillende stukken code. Ik kan met de code van mijn website dus de code van GitHub aanspreken via de API.
Als ik bijvoorbeeld data wil hebben over mijn eigen profiel, kan ik de GitHub API daarom vragen door een HTTP verzoek (request) naar deze URL te sturen:
https://api.github.com/users/RobinBoers
Ik krijg dan een reactie (response) van de GitHub API, met daarin alle (publieke) informatie van mijn profiel. Op die manier kan ik ook mijn repos (repositories), followers, forks, starred repos etc. zien.
Ik heb de API gebruikt om alle repositories die niet gearchiveerd zijn op te halen en op mijn website weer te geven. Daardoor hoef ik niet iedere keer dat ik een project start mijn website aan te passen.
Ik hoop dat jullie deze korte post interessant vonden :)
- Robin
SkyLight v0.04-beta update
Ik heb twee weken geleden een update voor SkyLight gepubliceerd. In deze versie worden comments en RSS feeds toegevoegd en heb ik de UI van het admin panel herschreven. Daarnaast zouden logo's nu moeten werken in de standaard themes. Je kan de zoals altijd de update downloaden en installeren vanaf het About tab in je admin panel.
De comments werken met een id
en een post_id
. Het id
is om de comment zelf te identificeren zodat je ze kan verwijderen. Het post_id
wordt gebruikt om ze bij de juiste post weer te geven.
Verder heb ik dus de backend UI voor het admin panel herschreven. Ik maakte eerst gebruik van PHP pages waarbij ik de header, footer en sidebar telkens opnieuw had gecopypaste. Het was een nachtmerrie om te onderhouden omdat ik dan de UI voor alle modules tegelijk moest updaten als er een wijzeging werd gemaakt. Daarom werk ik nu met een beter systeem. Het bestand modules.json
bevat de bestandsnamen, weergave namen en icons van alle modules. Ik include de footer, sidebar en header, die gebruik maken van de modules list om de juiste informatie te tonen.
De RSS feed wordt dynamisch opgebouwd door een PHP bestand met Content-Type text/xml te gebruiken. Hierdoor kan ik met PHP informatie uit de editor halen en deze in de XML van de RSS feed loaden. (het heeft me totaal niet een uur gekost om dit te bedenken š).
De update functie maakt nu gebruik van een extra script genaamd userspace-backup.php
dat de bestanden in userspace (je content) die nieuw zijn aanmaakt als die nog niet bestaan (zoals comments.json deze update).
Het is aangeraden je data te backuppen voordat je update omdat er veel gewijzigd is in de code. Ook is het aangeraden om de optionele CSS bestanden te updaten zodat je geen glitches in de layout van je admin panel krijgt.