translation

यह AI द्वारा अनुवादित पोस्ट है।

statpan

लेगिनोट प्रोजेक्ट विकास की कहानी3 - गो में अनुरोध

  • लिखने की भाषा: कोरियाई
  • मानक देश: सभी देशcountry-flag
  • आईटी
प्रोफ़ाइल छवि

durumis AI द्वारा सारांशित पोस्ट

  • लेगिनोट प्रोजेक्ट के विकास के दौरान, संसद ओपनएपीआई का उपयोग करके विधेयक जानकारी प्राप्त करने का कार्य किया गया था।
  • गो भाषा का उपयोग करके HTTP अनुरोध के माध्यम से डेटा का अनुरोध किया गया था और प्राप्त JSON डेटा को संरचना में पार्स किया गया था।
  • API कुंजी जारी करने से लेकर डेटा अनुरोध और पार्सिंग तक की प्रक्रिया को समझाया गया है, और भविष्य में सुधार की दिशा तलाशी जा रही है।

नमस्ते स्टेटपैन हूँ।

लेगिनोट साइड प्रोजेक्ट के डेवलपमेंट स्टोरी को लिख रहा हूँ।

पिछले भाग के लिए कृपया निम्नलिखित लिंक देखें।



वर्कर 1 वर्कर-बिल

बिल नाम किसी विदेशी मित्र का नाम जैसा परिचित लगता है, इसे निम्नलिखित शब्द के अर्थ से प्रेरणा मिली है।

उपयुक्त वेरिएबल नाम, रेपो नाम खोजने के लिए पहले संसद डोमेन से संबंधित अंग्रेजी शब्दों को ढूंढा था, उस समय खोजी गई चीजों को लागू किया है।

लेगिनोट प्रोजेक्ट विकास की कहानी3 - गो में अनुरोध

बिल शब्द का अर्थ



वर्कर द्वारा लक्षित डेटा को इकट्ठा करने के लिए ओपनएपीआई स्पेसिफिकेशन इस प्रकार है।


इनपुट पैरामीटर

लेगिनोट प्रोजेक्ट विकास की कहानी3 - गो में अनुरोध

विधेयक की जांच और प्रसंस्करण API इनपुट पैरामीटर


आउटपुट पैरामीटर

लेगिनोट प्रोजेक्ट विकास की कहानी3 - गो में अनुरोध

विधेयक की जांच और प्रसंस्करण API इनपुट पैरामीटर


यह काफी सारे डेटा प्रदान करता है और काफी विस्तृत जानकारी दे सकता है।


HTTP रिक्वेस्ट के लिए आवश्यक सामग्री

सबसे पहले, ऊपर दिए गए इनपुट पैरामीटर HTTP रिक्वेस्ट के लिए आवश्यक चीजें देखें तो

**URL**, **HTTP रिक्वेस्ट मेथड**(यहाँ नहीं दिया गया है, लेकिन **Get**है, पोस्ट नहीं ㅠ), **KEY**, **Type**, **pIndex**, **pSize**मान है।

KEY मान के लिए, अन्य ओपनएपीआई की तरह, आपको एक अलग प्रमाणीकरण कुंजी प्राप्त करनी होगी।


चूँकि यह डेवलपमेंट स्टोरी है, इसलिए मैं रेफरेंस के साथ लिंक देना चाहता था, लेकिन अभी यह इतना प्रसिद्ध नहीं है कि गूगल पर प्रमाणीकरण कुंजी प्राप्त करने के तरीके का कोई लेख मिले... अभी के लिए, मैं यहाँ चित्रों के माध्यम से समझाता हूँ...


लेगिनोट प्रोजेक्ट विकास की कहानी3 - गो में अनुरोध

होम स्क्रीन

होम स्क्रीन पर, माय पेज बटन दबाएँ।


लेगिनोट प्रोजेक्ट विकास की कहानी3 - गो में अनुरोध

माई पेज


लेगिनोट प्रोजेक्ट विकास की कहानी3 - गो में अनुरोध

प्रमाणीकरण कुंजी जारी करने की स्क्रीन

ऊपर दी गई स्क्रीन में, उपयोग के उद्देश्य या सामग्री के लिए, मैंने इसे सार्वजनिक डेटा प्रतियोगिता के उद्देश्य के लिए लिखा है। इस भाग को भरने के बारे में ज्यादा चिंता न करें, 1-2 पंक्तियों में यदि आपका उद्देश्य गलत नहीं है, तो यह स्वीकृत हो जाएगा।

इस प्रकार प्राप्त कुंजी ही ऊपर बताए गए HTTP विवरण में आवश्यक KEY प्रदान करेगी।


लेगिनोट प्रोजेक्ट विकास की कहानी3 - गो में अनुरोध


ऊपर दिए गए URL पर रिक्वेस्ट भेजते हैं (अगली बार अपडेट करते समय, कृपया मेथड भी शामिल करें)


```go

package main

import (
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"net/url"
)
func procErr(e error, msg string) {
if e != nil {
log.Fatal(e, msg)
}
}

func main() {
rawUrl := "https://open.assembly.go.kr/portal/openapi/TVBPMBILL11"
parsedUrl, err := url.Parse(rawUrl)
procErr(err, "err after parsedUrl")
params := url.Values{}
KEY := "your_key" //change this

procErr(err, "err after req, 27")
req.Header.Add("Content-Type", "application/json")
req.Header.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36")
params.Add("KEY", KEY)
params.Add("Type", "json") // JSON 좋.아
params.Add("pIndex", "1") // 이건 왜 integer로 표시했는지 모르겠지만 string
params.Add("pSize", "1")
client := &http.Client{}

reqURL := fmt.Sprintf("%s?%s", rawUrl, params.Encode())

req, err := http.NewRequest(http.MethodGet, reqURL, nil)

res, err := client.Do(req)
procErr(err, "err, after client do")
defer res.Body.Close()
var jsonMap any
response, err := io.ReadAll(res.Body)
procErr(err, "err after read response")
err = json.Unmarshal(response, &jsonMap)
procErr(err, "err after json unmarshal")
fmt.Println(jsonMap)
go

```


इस कोड का उपयोग करके, मैंने पहले काम की जाँच की।

एक टिप यह है कि आपको हेडर को जरूर जोड़ना होगा। यदि आप इस API का उपयोग करना चाहते हैं (धमकी)।

इसके बाद, Get URL में आवश्यक पैरामीटर डालते हैं।

pIndex और pSize के मान को इंटीजर में लिखना होता है, लेकिन आप स्ट्रिंग टाइप का इस्तेमाल कर सकते हैं। (समझ में नहीं आ रहा है)

Type में XML का उपयोग भी किया जा सकता है, लेकिन मैंने JSON का उपयोग किया है।



परिणाम

map[TVBPMBILL11:[map[head:[map[list_total_count:103305] map[RESULT:map[CODE:INFO-000 MESSAGE:정상 처리되었습니다.]]]] map[row:[map[AGE:22 BILL_ID:PRC_T2U4C0A8B2Z0A1Y3Y5G2H0F0G5E4F4 BILL_NAME:정치자금법 일부개정법률안 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:고동진의원 등 10인 PROPOSER_KIND:의원 PROPOSE_DT:2024-08-23 RST_MONA_CD:HS39431V RST_PROPOSER:고동진] map[AGE:22 BILL_ID:PRC_O2M4M0L8L2T0R1S3Q5R1P4Q0Y2W2X6 BILL_NAME:정당법 일부개정법률안 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?...


इस तरह का परिणाम मिलता है।


मैं इस ऑब्जेक्ट को सीधे नियंत्रित करने के लिए सभी स्ट्रक्चर को परिभाषित करके मान प्राप्त करता हूँ, और इस पर बहुत सारे डिबगिंग किए हैं।


इस मान को स्ट्रक्चर में अनमार्शल करना शायद अगले भाग में करना होगा, क्योंकि वर्णों की सीमा है।

एक रिक्वेस्ट ने डेवलपमेंट स्टोरी का एक भाग ले लिया है। बेशक, इस ओपनएपीआई के उपयोग के कारण, API का उपयोग और स्ट्रक्चर बनाने में काफी समय लगा है। मुझे इस हिस्से के लिए ऐसा तरीका खोजना होगा जिससे दूसरों को ऐसी परेशानी न हो।


यदि ऊपर दिए गए रिक्वेस्ट में कोई समस्या है या मेरे कोड से आप असंतुष्ट हैं, तो कृपया मुझे सिगरेट भी दें।



statpan
statpan
Python, Typescript, Go, Rust 언어에 관심을 가지고 사용하고 있습니다. 주 업무 분야는 자연어 처리, 데이터 사이언스 영역 입니다.
statpan
LegiNote प्रोजेक्ट विकास की कहानी 2 - तकनीकी ढाँचा और वर्करLegiNote प्रोजेक्ट विकास की कहानी के दूसरे भाग में, Go भाषा का उपयोग करके विकसित वर्कर के बारे में बताया गया है। डेटा संग्रह और अपडेट तर्क कार्यान्वयन और प्रोजेक्ट संरचना पद्धति का परिचय दिया गया है।

August 20, 2024

लेगीनोट प्रोजेक्ट विकास की कहानी 1 - आइडियास्टेटपैन ने लेगीनोट प्रोजेक्ट की शुरुआत संसदीय विधेयक और बैठक के रिकॉर्ड तक पहुंच को बढ़ाने और एआई का उपयोग करके विधायी दक्षता में सुधार के लक्ष्य के साथ की है।

August 17, 2024

कोरियाई निवेश सिक्योरिटीज एपीआई विकास संदर्भकोरियाई निवेश सिक्योरिटीज एपीआई विकास संदर्भ के माध्यम से आप एपीआई विकास के लिए आवश्यक जानकारी और सुझाव प्राप्त कर सकते हैं। आधिकारिक साइट, KIS डेवलपर साइट, github रिपोजिटरी आदि को संदर्भित करके विकास शुरू करें।
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마
(로또 사는 아빠) 살림 하는 엄마

April 22, 2024

DEV.TO से 2022 के शीर्ष लेखकों का उपहार प्राप्त हुआएक DEV.to लेखक को शुरू में $256 के इनाम की उम्मीद के बाद, 2022 के शीर्ष लेखकों के उपहार के तौर पर स्टिकर मिले।
Jeongho Nam
Jeongho Nam
Jeongho Nam
Jeongho Nam

July 18, 2024

मि. नो-ऑल 6 - 2024 मार्चLLM, AI सॉफ्टवेयर इंजीनियर, AI एजेंट आदि नवीनतम AI तकनीकी रुझानों और उपयोग की जानकारी से भरपूर मि. नो-ऑल का 6वां अंक है। Llama, AnythingLLM, Devin आदि उपयोगी जानकारी प्राप्त करें।
Pilot AISmrteasy
Pilot AISmrteasy
Pilot AISmrteasy
Pilot AISmrteasy

March 21, 2024

फ्लिटर 1.0.0 जारी: D3 का विकल्प SVG लाइब्रेरीफ्लिटर 1.0.0 एक SVG-आधारित डेटा विज़ुअलाइज़ेशन लाइब्रेरी है, जिसने React के साथ संगतता को मजबूत किया है और SSR समर्थन में सुधार किया है। इसमें प्रदर्शन में सुधार और बग फिक्स भी शामिल हैं।
Meursyphus
Meursyphus
Meursyphus
Meursyphus

May 1, 2024

[इफेक्टिव जावा] आइटम 6. अनावश्यक ऑब्जेक्ट निर्माण से बचेंअनावश्यक ऑब्जेक्ट निर्माण मेमोरी की बर्बादी का कारण बनता है, इसलिए स्ट्रिंग या बूलियन जैसे ऑब्जेक्ट के लिए लिटरल या स्टेटिक फैक्ट्री मेथड का उपयोग करना बेहतर होता है।
제이온
제이온
제이온
제이온

April 28, 2024

[जावा] रिफ्लेक्शन अवधारणा और उपयोग विधिजावा रिफ्लेक्शन एक ऐसा API है जो हीप में लोड किए गए क्लास की जानकारी के माध्यम से ऑब्जेक्ट निर्माण, फील्ड और मेथड एक्सेस को सक्षम बनाता है। इसका उपयोग स्प्रिंग फ्रेमवर्क जैसे फ्रेमवर्क में ऑब्जेक्ट निर्माण और निर्भरता इंजेक्शन के लिए किया जाता है।
제이온
제이온
제이온
제이온

April 25, 2024