September 22, 2023

NASA Public API

לחובבי אסטרונומיה - הנה הAPI המושלם עבורכם

https://api.nasa.gov/

איך משתמשים

ממלאים את הפרטים שלכם כדי לקבל KEY משלכם.
לא לתת אותו לאנשים.

לאחר קבלת המפתח האימייל ייראה כך:

למה אני צריך מפתח?

כל פעולה בשרת עולה כסף להרצה, הרבה מה-API הציבוריים הם מנוהלים ומנוטרים.
ההגבלה הכי גדולה עליהם זה כמה פעמים אתם יכולים לקרוא ל-API ביום או בחודש.

ניתן לחשוב על זה כדלת - נותנים לכם מפתח אבל הוא מוגבל, לא תמיד תצליחו לפתוח את הדלת איתו.

הגבלת מפתחות

אם נרשמתם יש לכם הגבלה של 1000 בקשות בשעה.

אם כל מה שאתם רוצים זה לבדוק ולא להירשם אתם יכולים להשתמש במפתח DEMO_KEY.
יש לכם בשעה 30 בקשות עבור כתובת IP.
ו50 בקשות פרק יום עבור כתובת IP.

דוגמא לשימוש בפייתון

בדוגמא הבאה נשתמש ב-3 חבילות שונות כדי לבנות אפליקציה קטנה.

  1. היא תקבל מידע מהמשתמש.
  2. היא תפנה ל-API כדי להשיג מידע על מאדים.
  3. היא תציג את התמונה למשתמש.

לסקריפט:
Download Python Script

הקוד החשוב:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def fetch_mars_photo(self):
api_key = self.api_key_input.get()
sol = self.sol_input.get()

url = f"https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol={sol}&api_key={api_key}"
response = requests.get(url).json()

if 'photos' in response and len(response['photos']) > 0:
first_photo_url = response['photos'][0]['img_src']
img_data = requests.get(first_photo_url).content
img = Image.open(BytesIO(img_data))
img = img.resize((400, 400), Image.ANTIALIAS)

self.photo = ImageTk.PhotoImage(img)
self.canvas.create_image(200, 200, image=self.photo)
else:
self.label.config(text="No photos available. Try again later.")

אנו מבצעים פנייה ל-API: https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos.
בפנייה הזו נביא 2 פרמטרים:
sol={sol}&api_key={api_key}

  1. את ה-KEY.
  2. יום מאדים.

לאחר מכן נפנה למידע שחוזר כ-JSON.
ניקח את התמונה הראשונה מרשימה בשם photos ונביא את התמונה בעזרת פנייה חדשה דרך הפרמטר img_src.

בסוף ככה זה נראה:


תנסו לשפר את האפליקציה, לעשות פניות משלכם, לחבר בין API שונים.
העולם והחלל מולכם :)

על הפוסט

הפוסט נכתב על ידי Ilya, רישיון על ידי CC BY-NC-ND 4.0.

שתפו את הפוסט

Email Facebook Linkedin Print

קנו לי קפה

#Software#PublicAPI#Python