Vertalingen: "English" |

Gebruik Swagger Json voor Github Copilot

Delen op:

Hé allemaal! Ik heb een productiviteitshack om te delen die me enorm veel tijd bespaart met het werken met API's. Laat me je zien hoe je Swagger JSON-documentatie kunt gebruiken met VS Code Copilot om API-integratiecode te schrijven in minuten in plaats van uren. Wanneer je gaat werken met Large Language Models (LLM's) is precisie alles - hoe specifieker en gedetailleerder je input, hoe beter en nauwkeuriger je resultaten zullen zijn.

In deze korte notes maken we gebruik van de gestructureerde data die Swagger ons biedt en gebruiken we deze informatie in VS code zodat copilot functies kan genereren op basis van deze data:

1. Verkrijg Je Swagger JSON

Swagger laat je API een universele taal spreken die machines kunnen begrijpen, en dat is behoorlijk gaaf! Wanneer je API zijn structuur deelt via een YAML- of JSON-bestand en volgens de OpenAPI-specificatie, kunnen we automatisch mooie API-documentatie maken, codebibliotheken genereren en zelfs tests opzetten.

Je kunt de content van jouw API-specificatie direct downloaden of kopiëren via een directe link of ga naar https://{fqdn}/swagger en klik op de downloadlink.

Swagger download link locatie

Swagger download link locatie

Afhankelijk van je configuratie, sla je het json-bestand op of maak je het aan in je project.


2. Laad het in VS Code

Nu we de specificaties van onze API klaar hebben binnen ons project kunnen we dit gaan gebruiken. In dit voorbeeld heb ik al een Pyhon class die de logging, authenticatie, de CRUD-acties en de afhandeling van de asynchrone/synchrone requests in Python regelt. We hoeven alleen nog maar extra endpoints toe te voegen.

Om ervoor te zorgen dat GitHub Copilot alle informatie over de API heeft, moeten we het bestand in de huidige chat als context laden. Gebruik hiervoor de #file variabele om het swagger.json bestand te laden.

Gebruik de #file variabele om het swagger bestand te laden.

Gebruik de #file variabele om het swagger bestand te laden.

Het laden van de Swagger JSON is maar de helft van het verhaal - je moet Copilot ook laten zien hoe je wilt dat je code gestructureerd wordt. In mijn geval had ik al bestaande API-functies die mijn gewenste codestyle en patronen volgden. Om Copilot dit patroon te laten begrijpen, laadde ik een voorbeeldbestand (get_organizations.py) dat functies bevatte geschreven in mijn gewenste stijl. Net als bij het Swagger-bestand gebruik je de #file variabele om dit aan Copilot's context toe te voegen: #file:get_organizations.py

Deze stap is cruciaal omdat het Copilot helpt bij:

  • Het matchen van je bestaande codestijl
  • Het gebruiken van dezelfde foutafhandelingspatronen
  • Het volgen van je project's functienaamconventies
  • Het behouden van consistentie in je codebase

Gebruik de #file variabele om een voorbeeldbestand te laden.

Gebruik de #file variabele om een voorbeeldbestand te laden.

Nu de prompt, nou dit is eigenlijk niet zo spannend, ik vraag CoPilot gewoon wat ik wil zien, maar het is belangrijk om zo exact mogelijk te zijn.

1Attached `#file:swagger.json` containing a few new api endpoints.
2Create a new Python function with the same structure as `#file:get_organizations.py` in new files.
3Create function for the endpoints:
4/organizations/{organizations}/clientsecrets
5/organizations/{organizations}/clientsecrets/{clientSecretId} (get/patch/delete)
text

Laten we de prompt ontleden:

  1. Attached #file:swagger.json containing a few new api endpoints.
    Rechttoe rechtaan, wijs Copilot de juiste richting.

  2. Create a new Python function with the same structure as #file:get_organizations.py in new files.
    Ook vrij rechttoe rechtaan, maar hier vertel ik CoPilot hoe het eindresultaat eruit moet zien, en dat ik het in nieuwe bestanden wil hebben.
    Wanneer je de "new file" niet vermeldt, zal het waarschijnlijk de nieuwe functies toevoegen aan get_organization.py

  3. Create function for the endpoints: {endpoint name}
    Omdat de swagger.json veel meer endpoints heeft die ik al in mijn project heb opgenomen, is dit waar ik de prompt afbaken.

  4. (get/patch/delete)
    Hier zorg ik ervoor dat Copilot begrijpt (voor de zekerheid) dat hij functies moet maken voor alle CRUD-operaties.

Ik moet eerlijk zijn, in de Conclusie hieronder vertel ik je dat het me maar twee minuten kostte. Dat was simpelweg niet waar, het waren er drie. Waarom? Ik was vergeten Copilot te vertellen dat hij ook asynchrone functies moest maken, waardoor ik alleen synchrone functies kreeg. Dit is waarom je zo precies mogelijk moet zijn en altijd de resultaten moet controleren, want de bron (get_organization.py) bevat zowel asynchrone als synchrone functies.

Het laatste wat je moet doen voordat je achterover kunt leunen is de uitvoering. In dit scenario heb je twee verschillende benaderingen.

  1. Copilot chat
    Dit genereert de functie in het chatvenster, en dan moet je de code nog aan je project toevoegen.

  2. Edit with Copilot
    Dit maakt de wijzigingen direct voor je in je project, in dit geval het maken van een nieuw bestand

Als laatste optie kun je het model instellen dat je wilt gebruiken, ik gebruik zelf het meest Claude 3.5 Sonnent, en schakel alleen over als het te traag wordt.

In de screencast video hieronder zie je dat ik Edit with Copilot gebruik in combinatie met Claude 3.5 Sonnent.

Blog gaat verder onder de video


3. Conclusie en TLDR

Dit is waarom ik dit zo gaaf vind: Wat me vroeger ongeveer 30 minuten kostte aan documentatie lezen, boilerplate code schrijven (oké, kopiëren/plakken (en kleine foutjes maken)), en testen, kost nu minder dan 2 minuten.

De sleutel hier is dat Swagger JSON een complete, gestructureerde beschrijving van je API geeft die Copilot perfect kan begrijpen. Het is alsof je Copilot een gedetailleerde kaart van je API geeft - geen giswerk meer over endpoints, parameters of responseformaten. Hoewel Swagger veel afhandelt, moeten de API-ontwikkelaars hun deel doen in het maken van goede documentatie, maar eerlijk gezegd is dit ook iets waar Copilot je bij kan helpen. Onthoud, hoe beter gedocumenteerd je Swagger-bestand is, hoe betere resultaten je zult krijgen. Het is de moeite waard om wat extra tijd te besteden aan het zorgen dat je API-documentatie top is - het zal zich dubbel en dwars terugbetalen tijdens het ontwikkelen!

  • Stap 1: Verkrijg Je Swagger JSON

    • Ga naar je API's Swagger UI (/swagger)
    • Download of kopieer de JSON-specificatie
    • Sla het op in je projectmap
  • Stap 2: Zet VS Code op

    • Open je project in VS Code
    • Laad het swagger.json bestand
    • Voeg voorbeeldbestanden toe voor context
  • Stap 3: Gebruik Github Copilot

    • Gebruik #file variabele om swagger.json als context te laden
    • Laad voorbeeldbestanden om gewenste codestructuur te tonen
    • Schrijf een precieze prompt die beschrijft wat je nodig hebt
    • Kies tussen Copilot chat of Edit with Copilot
    • Selecteer je voorkeursmodel (bijv. Claude 3.5 Sonnet)
  • Pro Tip: Wees zo specifiek mogelijk in je prompts - vermeld of je async functies, nieuwe bestanden of specifieke CRUD-operaties wilt. Hoe preciezer je bent, hoe beter de resultaten!

Dat is het! Je hebt zojuist een taak van 30 minuten veranderd in een klus van 2 minuten. Happy coding! 🚀


Reacties

Cookies.

By using this website, you automatically accept that we use cookies. What for?

Understood