statpan

LegiNote Projet de développement - Partie 3 : Requête en Go

Création: 2024-08-26

Création: 2024-08-26 12:41

Bonjour, je suis StatPan.

Je rédige le journal de développement du projet secondaire LegiNote.

Veuillez consulter le lien suivant pour la partie précédente.



Le worker n°1 : worker-bill

Le nom "bill" a quelque chose de familier, comme le prénom d'un ami étranger. Je me suis inspiré de la signification suivante de ce mot.

Pour trouver des noms de variables et de référentiels appropriés, j'avais précédemment recherché divers mots anglais liés au domaine parlementaire. J'ai donc appliqué ce que j'avais trouvé à l'époque.

LegiNote Projet de développement - Partie 3 : Requête en Go

Définition du mot bill



Voici les spécifications de l'OpenAPI que le Worker ciblera pour collecter les données.


Paramètres d'entrée

LegiNote Projet de développement - Partie 3 : Requête en Go

Paramètres d'entrée de l'API d'examen et de traitement des projets de loi


Paramètres de sortie

LegiNote Projet de développement - Partie 3 : Requête en Go

Paramètres d'entrée de l'API d'examen et de traitement des projets de loi


Les données fournies sont nombreuses et il semble que nous puissions fournir des informations assez détaillées.


Éléments requis pour la requête HTTP

Tout d'abord, examinons ce dont nous avons besoin pour envoyer une requête HTTP avec les paramètres d'entrée ci-dessus.

URL, méthode de requête HTTP(même si ce n'est pas indiqué ici, Get est utilisé. Post n'est pas possible ㅠ), KEY, Type, pIndex, pSize sont nécessaires.

Pour la valeur KEY, comme pour d'autres OpenAPI, vous devez obtenir une clé d'authentification séparée.


Comme il s'agit d'un journal de développement, j'avais prévu d'inclure des liens vers les références... Mais comme il s'agit d'une API encore peu connue, je n'ai pas trouvé d'article sur Google expliquant comment obtenir une clé d'authentification... Pour l'instant, je vais donc simplement vous expliquer cela avec des images...


LegiNote Projet de développement - Partie 3 : Requête en Go

Page d'accueil

Cliquez sur le bouton "Mon profil" sur l'écran d'accueil.


LegiNote Projet de développement - Partie 3 : Requête en Go

Mon compte


LegiNote Projet de développement - Partie 3 : Requête en Go

Écran d'émission de la clé d'API

Dans l'écran ci-dessus, pour l'utilisation prévue ou le contenu, j'ai simplement indiqué que c'était pour un concours de données publiques. Vous n'avez pas à trop vous inquiéter de remplir le contenu, tant que vous n'indiquez pas de raisons douteuses ( ?) en 1 ou 2 lignes, je pense que vous obtiendrez l'approbation immédiatement.

La clé ainsi obtenue vous permettra d'obtenir la KEY nécessaire à l'explication HTTP ci-dessus.


LegiNote Projet de développement - Partie 3 : Requête en Go


Essayons d'envoyer une requête à l'URL ci-dessus (j'espère qu'à la prochaine mise à jour, la méthode sera également incluse).


go

```


J'ai pu ainsi vérifier le fonctionnement grâce à ce code.

Un petit conseil : vous devez absolument ajouter l'en-tête (semi-menace). Si vous voulez utiliser cette API correctement, vous devez l'ajouter.

Ensuite, nous remplissons les paramètres obligatoires de l'URL Get.

Pour les valeurs pIndex et pSize, il est indiqué d'utiliser un entier, mais vous pouvez également utiliser un type string (incompréhensible).

Il est possible d'utiliser le format XML pour Type, mais j'ai choisi Json.



Valeur de retour

map[TVBPMBILL11:[map[head:[map[list_total_count:103305] map[RESULT:map[CODE:INFO-000 MESSAGE:Traitement normal terminé.]]]] map[row:[map[AGE:22 BILL_ID:PRC_T2U4C0A8B2Z0A1Y3Y5G2H0F0G5E4F4 BILL_NAME:Proposition de loi portant modification partielle de la loi sur le financement politique BILL_NO:2203179 CMT_PRESENT_DT: CMT_PROC_DT: CMT_PROC_RESULT_CD: COMMITTEE_DT: COMMITTEE_PROC_DT: CURR_COMMITTEE: CURR_COMMITTEE_ID: LAW_PRESENT_DT: LAW_PROC_DT: LAW_PROC_RESULT_CD: LAW_SUBMIT_DT: LINK_URL:https://likms.assembly.go.kr/bill/billDetail.do?billId=PRC_T2U4C0A8B2Z0A1Y3Y5G2H0F0G5E4F4 PROC_DT: PROC_RESULT_CD: PROPOSER:Député Go Dong-jin et 10 autres PROPOSER_KIND:Député PROPOSE_DT:2024-08-23 RST_MONA_CD:HS39431V RST_PROPOSER:Go Dong-jin] map[AGE:22 BILL_ID:PRC_O2M4M0L8L2T0R1S3Q5R1P4Q0Y2W2X6 BILL_NAME:Proposition de loi portant modification partielle de la loi sur les partis politiques BILL_NO:2203178 CMT_PRESENT_DT: CMT_PROC_DT: CMT_PROC_RESULT_CD: COMMITTEE_DT: COMMITTEE_PROC_DT: CURR_COMMITTEE: CURR_COMMITTEE_ID: LAW_PRESENT_DT: LAW_PROC_DT: LAW_PROC_RESULT_CD: LAW_SUBMIT_DT: LINK_URL:https://likms.assembly.go.kr/bill/billDetail.do?...


Nous obtenons les résultats ci-dessus.


Personnellement, pour contrôler directement cet objet, je définis toutes les structures et récupère les valeurs. Cela m'a valu de nombreux débogages.


En raison de la limite de caractères, je pense que je devrai continuer la description de la désérialisation de cette valeur dans une structure dans la partie suivante.

Une seule requête a déjà pris toute une partie du journal de développement. Bien sûr, étant donné les caractéristiques de l'utilisation de cette OpenAPI, j'ai passé beaucoup de temps à l'utiliser et à structurer la structure, mais je dois trouver un moyen d'éviter que les autres ne subissent les mêmes souffrances.


Si le comportement de la requête ci-dessus ne correspond pas à vos attentes ou si vous n'êtes pas satisfait de mon code étrange, n'hésitez pas à me le faire savoir.



Commentaires0