CURL और पायथन में कार्यान्वयन का पूर्ण उदाहरण है - प्राधिकरण के लिए और एपीआई कॉल करने के लिए
कर्ल
1. प्राधिकरण
आपको इस तरह से एक्सेस डेटा प्राप्त हुआ है:
Username: johndoe
Password: zznAQOoWyj8uuAgq
Consumer Key: ggczWttBWlTjXCEtk3Yie_WJGEIa
Consumer Secret: uuzPjjJykiuuLfHkfgSdXLV98Ciga
जिसे आप इस तरह से कॉल कर सकते हैं:
curl -k -d "grant_type=password&username=Username&password=Password" \
-H "Authorization: Basic Base64(consumer-key:consumer-secret)" \
https://somedomain.test.com/token
या इस मामले के लिए यह होगा:
curl -k -d "grant_type=password&username=johndoe&password=zznAQOoWyj8uuAgq" \
-H "Authorization: Basic zzRjettzNUJXbFRqWENuuGszWWllX1iiR0VJYTpRelBLZkp5a2l2V0xmSGtmZ1NkWExWzzhDaWdh" \
https://somedomain.test.com/token
उत्तर कुछ इस तरह होगा:
{
"access_token": "zz8d62zz-56zz-34zz-9zzf-azze1b8057f8",
"refresh_token": "zzazz4c3-zz2e-zz25-zz97-ezz6e219cbf6",
"scope": "default",
"token_type": "Bearer",
"expires_in": 3600
}
2. एपीआई कॉलिंग
यहां बताया गया है कि आप कुछ एपीआई कैसे कहते हैं जो ऊपर से प्रमाणीकरण का उपयोग करता है। Limit
और offset
केवल 2 मापदंडों के उदाहरण हैं जिन्हें एपीआई लागू कर सकता है। आपको access_token
बाद में ऊपर से डाला गया है "Bearer "
। यहाँ पर आप ऊपर से प्रमाणीकरण डेटा के साथ कुछ एपीआई कैसे कहते हैं:
curl -k -X GET "https://somedomain.test.com/api/Users/Year/2020/Workers?offset=1&limit=100" -H "accept: application/json" -H "Authorization: Bearer zz8d62zz-56zz-34zz-9zzf-azze1b8057f8"
अजगर
ऊपर से समान बात पायथन में लागू की गई। मैंने टिप्पणियों में पाठ डाला है ताकि कोड कॉपी-पेस्ट किया जा सके।
import base64
import requests
username = 'johndoe'
password= 'zznAQOoWyj8uuAgq'
consumer_key = 'ggczWttBWlTjXCEtk3Yie_WJGEIa'
consumer_secret = 'uuzPjjJykiuuLfHkfgSdXLV98Ciga'
consumer_key_secret = consumer_key+":"+consumer_secret
consumer_key_secret_enc = base64.b64encode(consumer_key_secret.encode()).decode()
headersAuth = {
'Authorization': 'Basic '+ str(consumer_key_secret_enc),
}
data = {
'grant_type': 'password',
'username': username,
'password': password
}
response = requests.post('https://somedomain.test.com/token', headers=headersAuth, data=data, verify=True)
j = response.json()
{
"access_token": "zz8d62zz-56zz-34zz-9zzf-azze1b8057f8",
"refresh_token": "zzazz4c3-zz2e-zz25-zz97-ezz6e219cbf6",
"scope": "default",
"token_type": "Bearer",
"expires_in": 3600
}
headersAPI = {
'accept': 'application/json',
'Authorization': 'Bearer '+j['access_token'],
}
params = (
('offset', '0'),
('limit', '20'),
)
response = requests.get('https://somedomain.test.com/api/Users/Year/2020/Workers', headers=headersAPI, params=params, verify=True)
api_response = response.json()
Traceback (most recent call last): File "bearerreturn.py", line 6, in <module> print requests.post(endpoint,data=data,headers=headers).json() TypeError: 'dict' object is not callable
कोड नीचे:import requests endpoint = "https://xforce-api.mybluemix.net:443/api/ip" data = {"ip":"1.1.2.3"} headers = {"Bearer token":"TOKEN WAS INSERTED HERE"} print requests.post(endpoint,data=data,headers=headers).json()
कोई विचार?