Ce guide explique comment paginer les résultats lors de l'utilisation de l'API NewsDataHub.
L'API NewsDataHub est un service qui fournit des données d'actualité via une interface API RESTful. Il implémente une pagination basée sur un curseur pour gérer efficacement de grands ensembles de données, permettant aux développeurs de récupérer des articles d'actualité par lots gérables. Chaque réponse comprend un ensemble d'articles où chaque objet d'article contient des détails tels que le titre, la description, la date de publication, la source, le contenu, les mots-clés, les sujets et l'analyse des sentiments. L'API utilise un paramètre de curseur pour une navigation transparente dans les résultats et fournit une documentation complète sur les fonctionnalités avancées telles que les paramètres de recherche et les options de filtrage.
Pour la documentation, visitez : https://newsdatahub.com/docs
Les API renvoient généralement une quantité limitée de données dans leurs réponses, car renvoyer tous les résultats en une seule requête n'est généralement pas pratique. Au lieu de cela, ils utilisent la pagination, une technique qui divise les données en pages ou en lots distincts. Cela permet aux clients de récupérer une page à la fois, accédant ainsi à un sous-ensemble gérable des résultats.
Lorsque vous effectuez une demande initiale au point de terminaison /news et recevez le premier lot de résultats, la forme de la réponse ressemble à ceci :
{ "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 ] }
Remarquez la première propriété dans la réponse JSON - next_cursor. La valeur dans next_cursor pointe vers le début de la page de résultats suivante. Lors de la requête suivante, vous spécifiez le paramètre de requête du curseur comme ceci :
https://api.newsdatahub.com/v1/news?cursor=VW93MzoqpzM0MzgzMQpqwDAwMDQ5LjA6MzA0NTM0Mjk1T0xHag==
Le moyen le plus simple d'essayer de paginer les résultats est d'utiliser Postman ou un outil similaire. Voici une courte vidéo montrant comment utiliser la valeur du curseur pour paginer les résultats dans Postman.
https://youtu.be/G7kkTwCPtCE
Lorsque la valeur next_cursor est nulle, cela indique que vous avez atteint la fin des résultats disponibles pour vos critères sélectionnés.
Voici comment configurer la pagination de base via les résultats de l'API NewsDataHub à l'aide de Python.
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
Certaines API utilisent une pagination basée sur un index pour diviser les résultats en morceaux discrets. Avec cette approche, les API renvoient une page de données spécifique, semblable à la table des matières d'un livre, où chaque numéro de page pointe vers une section spécifique.
Bien que la pagination basée sur un index soit plus simple à mettre en œuvre, elle présente plusieurs inconvénients. Il a du mal avec les mises à jour en temps réel, peut produire des résultats incohérents et exerce davantage de pression sur la base de données, car la récupération de chaque nouvelle page nécessite une analyse séquentielle des enregistrements précédents.
Nous avons couvert les principes fondamentaux de la pagination basée sur le curseur dans l'API NewsDataHub. Pour des fonctionnalités avancées telles que les paramètres de recherche et les options de filtrage, veuillez consulter la documentation complète de l'API sur https://newsdatahub.com/docs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!