Heim >Backend-Entwicklung >Python-Tutorial >Grundlegendes zur Paginierung mit der NewsDataHub-API
Diese Anleitung erklärt, wie man bei Verwendung der NewsDataHub-API durch die Ergebnisse paginiert.
NewsDataHub API ist ein Dienst, der Nachrichtendaten über eine RESTful-API-Schnittstelle bereitstellt. Es implementiert eine Cursor-basierte Paginierung, um große Datenmengen effizient zu verarbeiten und ermöglicht es Entwicklern, Nachrichtenartikel in überschaubaren Stapeln abzurufen. Jede Antwort umfasst eine Reihe von Artikeln, wobei jedes Artikelobjekt Details wie Titel, Beschreibung, Veröffentlichungsdatum, Quelle, Inhalt, Schlüsselwörter, Themen und Stimmungsanalyse enthält. Die API verwendet einen Cursorparameter für die nahtlose Navigation durch die Ergebnisse und bietet eine umfassende Dokumentation für erweiterte Funktionen wie Suchparameter und Filteroptionen.
Dokumentation finden Sie unter: https://newsdatahub.com/docs
APIs geben in ihren Antworten normalerweise eine begrenzte Datenmenge zurück, da die Rückgabe aller Ergebnisse in einer einzigen Anfrage normalerweise unpraktisch ist. Stattdessen verwenden sie Paginierung – eine Technik, die Daten in separate Seiten oder Stapel aufteilt. Dadurch können Kunden jeweils eine Seite abrufen und auf eine überschaubare Teilmenge der Ergebnisse zugreifen.
Wenn Sie eine erste Anfrage an den /news-Endpunkt stellen und die ersten Ergebnisse erhalten, sieht die Form der Antwort wie folgt aus:
{ "next_cursor": "VW93MzoqpzM0MzgzMQpqwDAwMDQ5LjA6MzA0NTM0Mjk1T0xHag==", "total_results": 910310, "per_page": 10, "data": [ { "id": "4927167e-93f3-45d2-9c53-f1b8cdf2888f", "title": "Jail time for wage theft: New laws start January", "source_title": "Dynamic Business", "source_link": "https://dynamicbusiness.com", "article_link": "https://dynamicbusiness.com/topics/news/jail-time-for-wage-theft-new-laws-start-january.html", "keywords": [ "wage theft", "criminalisation of wage theft", "Australian businesses", "payroll errors", "underpayment laws" ], "topics": [ "law", "employment", "economy" ], "description": "Starting January 2025, deliberate wage theft will come with serious consequences for employers in Australia.", "pub_date": "2024-12-17T07:15:00", "creator": null, "content": "The criminalisation of wage theft from January 2025 will be a wake-up call for all Australian businesses. While deliberate underpayment has rightly drawn scrutiny, our research reveals that accidental payroll errors are alarmingly common, affecting nearly 60% of companies in the past two years. Matt Loop, VP and Head of Asia at Rippling Starting January 1, 2025, Australias workplace compliance landscape will change dramatically. Employers who deliberately underpay employees could face fines as high as AU. 25 million or up to 10 years in prison under new amendments to the Fair Work Act 2009 likely. Employers must act decisively to ensure compliance, as ignorance or unintentional errors wont shield them from civil or criminal consequences. Matt Loop, VP and Head of Asia at Rippling, says: The criminalisation of wage theft from January 2025 will be a wake-up call for all Australian businesses. While deliberate underpayment has rightly drawn scrutiny, our research reveals that accidental payroll errors are alarmingly common, affecting nearly 60% of companies in the past two years. Adding to the challenge, many SMEs still rely on fragmented, siloed systems to manage payroll. This not only complicates operations but significantly increases the risk of errors heightening the potential for non-compliance under the new laws. The urgency for businesses to modernise their approach cannot be overstated. Technology offers a practical solution, helping to streamline and automate processes, reduce human error, and ensure compliance. But this is about more than just avoiding penalties. Accurate and timely pay builds trust with employees, strengthens workplace morale, and fosters accountability. The message is clear: wage theft isnt just a financial risk anymoreits a criminal offense. Now is the time to ensure your business complies with Australias new workplace laws. Keep up to date with our stories on LinkedIn, Twitter, Facebook and Instagram.", "media_url": "https://backend.dynamicbusiness.com/wp-content/uploads/2024/12/db-3-4.jpg", "media_type": "image/jpeg", "media_description": null, "media_credit": null, "media_thumbnail": null, "language": "en", "sentiment": { "pos": 0.083, "neg": 0.12, "neu": 0.796 } }, // more article objects ] }
Beachten Sie die erste Eigenschaft in der JSON-Antwort – next_cursor. Der Wert in next_cursor zeigt auf den Anfang der nächsten Ergebnisseite. Bei der nächsten Anfrage geben Sie den Cursor-Abfrageparameter wie folgt an:
https://api.newsdatahub.com/v1/news?cursor=VW93MzoqpzM0MzgzMQpqwDAwMDQ5LjA6MzA0NTM0Mjk1T0xHag==
Der einfachste Weg, das Paginieren durch die Ergebnisse auszuprobieren, ist Postman oder ein ähnliches Tool. Hier ist ein kurzes Video, das zeigt, wie man mit dem Cursorwert durch die Ergebnisse in Postman paginiert.
https://youtu.be/G7kkTwCPtCE
Wenn der next_cursor-Wert null ist, bedeutet dies, dass Sie das Ende der verfügbaren Ergebnisse für Ihre ausgewählten Kriterien erreicht haben.
Hier erfahren Sie, wie Sie mit Python die grundlegende Paginierung über NewsDataHub-API-Ergebnisse einrichten.
import requests # Make sure to keep your API keys secure # Use environment variables instead of hardcoding API_KEY = 'your_api_key' BASE_URL = 'https://api.newsdatahub.com/v1/news' headers = { 'X-Api-Key': API_KEY, 'Accept': 'application/json', 'User-Agent': 'Mozilla/5.0 Chrome/83.0.4103.97 Safari/537.36' } params = {} cursor = None # Limit to 5 pages to avoid rate limiting while demonstrating pagination for _ in range(5): params['cursor'] = cursor try: response = requests.get(BASE_URL, headers=headers, params=params) response.raise_for_status() data = response.json() except (requests.HTTPError, ValueError) as e: print(f"There was an error when making the request: {e}") continue cursor = data.get('next_cursor') for article in data.get('data', []): print(article['title']) if cursor is None: print("No more results") break
Einige APIs verwenden indexbasierte Paginierung, um Ergebnisse in diskrete Blöcke aufzuteilen. Bei diesem Ansatz geben APIs eine bestimmte Seite mit Daten zurück – ähnlich einem Inhaltsverzeichnis in einem Buch, bei dem jede Seitenzahl auf einen bestimmten Abschnitt verweist.
Die indexbasierte Paginierung ist zwar einfacher zu implementieren, weist jedoch mehrere Nachteile auf. Es gibt Probleme mit Aktualisierungen in Echtzeit, kann zu inkonsistenten Ergebnissen führen und belastet die Datenbank stärker, da das Abrufen jeder neuen Seite ein sequenzielles Durchsuchen vorheriger Datensätze erfordert.
Wir haben die Grundlagen der Cursor-basierten Paginierung in der NewsDataHub-API behandelt. Informationen zu erweiterten Funktionen wie Suchparametern und Filteroptionen finden Sie in der vollständigen API-Dokumentation unter https://newsdatahub.com/docs.
Das obige ist der detaillierte Inhalt vonGrundlegendes zur Paginierung mit der NewsDataHub-API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!