Ես բավականին նոր եմ Python/Django-ում, բայց ես ստեղծել եմ REST API մեկ կայքի համար (siteA.com) և կցանկանայի, որ մեկ այլ կայք (siteB.com) կարողանա զանգահարել այս API և ցույց տալ որոշ արդյունքներ: Դրա համար ես ավելացրել եմ Django REST Framework-ը և Django Auth2 Provider-ը siteA-ին: Այժմ ես կարող եմ զանգահարել API-ն՝ օգտագործելով curl՝ մուտքի նշանը ստանալու համար.
curl -X POST -d "client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=password&username=USERNAME&password=PASSWORD" http://www.siteA.com/oauth2/access_token [1]
Սա տալիս է իմ ուզած պատասխանը.
{"access_token": "72x63615xe29f4xfdadexbcd77x27b5fx0bceexx", "scope": "read", "expires_in": 86399, "refresh_token": "5fx80dx320cx3abe7d0x27d5f1x64e7x413x0f70"}
Օգտագործելով իմ ստացած մուտքի նշանը, այժմ կարող եմ զանգահարել API.
curl -v -H "Authorization: Bearer 72x63615xe29f4xfdadexbcd77x27b5fx0bceexx" "http://www.siteA.com/api/?q=SOMESTRING&per_page=3&page=1&sort=random" [2]
Ինչն ինձ տալիս է JSON պատասխան՝ 3 արդյունքով «SOMETRING» հարցման տողի համար:
Ամեն ինչ լավ է աշխատում, բայց հիմա ես ուզում եմ այս զանգերը կատարել siteB.com-ից: Այլ կերպ ասած, ես ուզում եմ ստեղծել մի էջ, որը, եթե կանչվի որոշակի որոնման հարցումով, նախ ստուգի, թե արդյոք կա մուտքի նշան, ինչպես [1]-ում, ապա ստանալ որոնման արդյունքները [2] և ցույց տալ դրանք JSON ձևաչափով: Ես պարզապես գաղափար չունեմ, թե ինչպես դա անել: Փորձել է օգտագործել OAuth2-ը requests_oauth2-ից, բայց պարզապես չգիտեմ curl-ի հայտարարությունները Python-ի թարգմանելու ճիշտ եղանակը: Որևէ օգնություն: