| # News API Usage Examples | |
| # مثالهای استفاده از API اخبار | |
| This folder contains practical examples showing how to query and use the Crypto News API from different programming languages and environments. | |
| این پوشه شامل مثالهای عملی است که نحوه استفاده از API اخبار کریپتو را از زبانهای برنامهنویسی و محیطهای مختلف نشان میدهد. | |
| --- | |
| ## Files / فایلها | |
| ### 1. `basic-usage.html` | |
| **Interactive HTML example with live demos** | |
| **مثال HTML تعاملی با نمایش زنده** | |
| - Open in browser to see live examples | |
| - Click buttons to test different API queries | |
| - See request details and responses | |
| - No installation required | |
| **How to use:** | |
| ```bash | |
| # Open directly in browser | |
| open basic-usage.html | |
| # Or serve locally | |
| python -m http.server 7860 | |
| # Then visit: http://localhost:7860/basic-usage.html | |
| ``` | |
| **Features:** | |
| - ✅ Load all news | |
| - ✅ Filter by sentiment (positive/negative) | |
| - ✅ Search by keyword | |
| - ✅ Limit results | |
| - ✅ View request/response details | |
| --- | |
| ### 2. `api-client-examples.js` | |
| **JavaScript/Node.js client library and examples** | |
| **کتابخانه و مثالهای کلاینت جاوااسکریپت/Node.js** | |
| Complete JavaScript client with usage examples. | |
| **How to use in Browser:** | |
| ```html | |
| <script type="module"> | |
| import { CryptoNewsClient } from './api-client-examples.js'; | |
| const client = new CryptoNewsClient(); | |
| const articles = await client.getAllNews(); | |
| console.log(articles); | |
| </script> | |
| ``` | |
| **How to use in Node.js:** | |
| ```bash | |
| node api-client-examples.js | |
| ``` | |
| **Available Methods:** | |
| ```javascript | |
| const client = new CryptoNewsClient('http://localhost:3000'); | |
| // Get all news | |
| await client.getAllNews(limit); | |
| // Get by sentiment | |
| await client.getNewsBySentiment('positive', limit); | |
| // Get by source | |
| await client.getNewsBySource('CoinDesk', limit); | |
| // Search keyword | |
| await client.searchNews('bitcoin', limit); | |
| // Get latest | |
| await client.getLatestNews(count); | |
| // Get statistics | |
| await client.getNewsStatistics(); | |
| ``` | |
| --- | |
| ### 3. `api-client-examples.py` | |
| **Python client library and examples** | |
| **کتابخانه و مثالهای کلاینت پایتون** | |
| Complete Python client with usage examples. | |
| **Requirements:** | |
| ```bash | |
| pip install requests | |
| ``` | |
| **How to use:** | |
| ```bash | |
| # Run all examples | |
| python api-client-examples.py | |
| # Or import in your code | |
| from api_client_examples import CryptoNewsClient | |
| client = CryptoNewsClient() | |
| articles = client.get_all_news(limit=50) | |
| ``` | |
| **Available Methods:** | |
| ```python | |
| client = CryptoNewsClient('http://localhost:3000') | |
| # Get all news | |
| client.get_all_news(limit) | |
| # Get by sentiment | |
| client.get_news_by_sentiment('positive', limit) | |
| # Get by source | |
| client.get_news_by_source('CoinDesk', limit) | |
| # Search keyword | |
| client.search_news('bitcoin', limit) | |
| # Get latest | |
| client.get_latest_news(count) | |
| # Get statistics | |
| client.get_news_statistics() | |
| ``` | |
| --- | |
| ## Quick Examples / مثالهای سریع | |
| ### Example 1: Get All News | |
| ### مثال ۱: دریافت تمام اخبار | |
| **JavaScript:** | |
| ```javascript | |
| const client = new CryptoNewsClient(); | |
| const articles = await client.getAllNews(10); | |
| console.log(`Found ${articles.length} articles`); | |
| ``` | |
| **Python:** | |
| ```python | |
| client = CryptoNewsClient() | |
| articles = client.get_all_news(limit=10) | |
| print(f"Found {len(articles)} articles") | |
| ``` | |
| **cURL:** | |
| ```bash | |
| curl "http://localhost:3000/api/news?limit=10" | |
| ``` | |
| --- | |
| ### Example 2: Filter Positive News | |
| ### مثال ۲: فیلتر اخبار مثبت | |
| **JavaScript:** | |
| ```javascript | |
| const positive = await client.getNewsBySentiment('positive'); | |
| positive.forEach(article => console.log(article.title)); | |
| ``` | |
| **Python:** | |
| ```python | |
| positive = client.get_news_by_sentiment('positive') | |
| for article in positive: | |
| print(article['title']) | |
| ``` | |
| **cURL:** | |
| ```bash | |
| curl "http://localhost:3000/api/news?sentiment=positive" | |
| ``` | |
| --- | |
| ### Example 3: Search Bitcoin News | |
| ### مثال ۳: جستجوی اخبار بیتکوین | |
| **JavaScript:** | |
| ```javascript | |
| const bitcoin = await client.searchNews('bitcoin'); | |
| console.log(`Found ${bitcoin.length} Bitcoin articles`); | |
| ``` | |
| **Python:** | |
| ```python | |
| bitcoin = client.search_news('bitcoin') | |
| print(f"Found {len(bitcoin)} Bitcoin articles") | |
| ``` | |
| --- | |
| ### Example 4: Get Statistics | |
| ### مثال ۴: دریافت آمار | |
| **JavaScript:** | |
| ```javascript | |
| const stats = await client.getNewsStatistics(); | |
| console.log(`Total: ${stats.total}`); | |
| console.log(`Positive: ${stats.positive}`); | |
| console.log(`Negative: ${stats.negative}`); | |
| console.log(`Neutral: ${stats.neutral}`); | |
| ``` | |
| **Python:** | |
| ```python | |
| stats = client.get_news_statistics() | |
| print(f"Total: {stats['total']}") | |
| print(f"Positive: {stats['positive']}") | |
| print(f"Negative: {stats['negative']}") | |
| print(f"Neutral: {stats['neutral']}") | |
| ``` | |
| --- | |
| ## API Response Format | |
| ## فرمت پاسخ API | |
| All API methods return articles in this format: | |
| ```json | |
| { | |
| "title": "Article Title", | |
| "content": "Article description or content", | |
| "source": { | |
| "title": "Source Name" | |
| }, | |
| "published_at": "2025-11-30T10:00:00Z", | |
| "url": "https://example.com/article", | |
| "urlToImage": "https://example.com/image.jpg", | |
| "author": "Author Name", | |
| "sentiment": "positive", | |
| "category": "crypto" | |
| } | |
| ``` | |
| --- | |
| ## Error Handling | |
| ## مدیریت خطاها | |
| ### JavaScript: | |
| ```javascript | |
| try { | |
| const articles = await client.getAllNews(); | |
| } catch (error) { | |
| console.error('Error:', error.message); | |
| // Handle error | |
| } | |
| ``` | |
| ### Python: | |
| ```python | |
| try: | |
| articles = client.get_all_news() | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| # Handle error | |
| ``` | |
| --- | |
| ## Common Use Cases | |
| ## موارد استفاده رایج | |
| ### 1. Display Latest News on Website | |
| ```javascript | |
| const client = new CryptoNewsClient(); | |
| const latest = await client.getLatestNews(5); | |
| latest.forEach(article => { | |
| const div = document.createElement('div'); | |
| div.innerHTML = ` | |
| <h3>${article.title}</h3> | |
| <p>${article.content}</p> | |
| <a href="${article.url}">Read more</a> | |
| `; | |
| document.body.appendChild(div); | |
| }); | |
| ``` | |
| ### 2. Monitor Sentiment Trends | |
| ```python | |
| client = CryptoNewsClient() | |
| stats = client.get_news_statistics() | |
| positive_ratio = stats['positive'] / stats['total'] * 100 | |
| print(f"Market sentiment: {positive_ratio:.1f}% positive") | |
| ``` | |
| ### 3. Create News Alerts | |
| ```javascript | |
| const client = new CryptoNewsClient(); | |
| // Check for Bitcoin news every 5 minutes | |
| setInterval(async () => { | |
| const bitcoin = await client.searchNews('bitcoin'); | |
| const recent = bitcoin.filter(a => { | |
| const age = Date.now() - new Date(a.published_at).getTime(); | |
| return age < 5 * 60 * 1000; // Last 5 minutes | |
| }); | |
| if (recent.length > 0) { | |
| console.log(`${recent.length} new Bitcoin articles!`); | |
| // Send notification | |
| } | |
| }, 5 * 60 * 1000); | |
| ``` | |
| --- | |
| ## Testing the Examples | |
| ## آزمایش مثالها | |
| ### Prerequisites: | |
| 1. Server must be running on `localhost:3000` | |
| 2. News API should be configured with valid API key | |
| ### Run Examples: | |
| **HTML Example:** | |
| ```bash | |
| # Open in browser | |
| open basic-usage.html | |
| ``` | |
| **JavaScript Example:** | |
| ```bash | |
| # Node.js environment | |
| node api-client-examples.js | |
| ``` | |
| **Python Example:** | |
| ```bash | |
| # Python environment | |
| python api-client-examples.py | |
| ``` | |
| --- | |
| ## Troubleshooting | |
| ## رفع مشکلات | |
| ### Issue: "Connection refused" | |
| **Solution:** Make sure the server is running: | |
| ```bash | |
| # Check if server is running | |
| curl http://localhost:3000/api/news | |
| # If not, start the server | |
| npm start | |
| # or | |
| python server.py | |
| ``` | |
| ### Issue: "No articles returned" | |
| **Solution:** | |
| - Check your internet connection | |
| - Verify News API key is valid | |
| - Check API rate limits (100 requests/day for free tier) | |
| ### Issue: "CORS error in browser" | |
| **Solution:** The server must allow CORS for browser requests. Add CORS headers or use the same domain. | |
| --- | |
| ## Additional Resources | |
| ## منابع اضافی | |
| - Main README: `../README.md` | |
| - API Usage Guide: `../API-USAGE-GUIDE.md` | |
| - Implementation Summary: `../IMPLEMENTATION-SUMMARY.md` | |
| - Configuration: `../news-config.js` | |
| --- | |
| ## License | |
| These examples are provided as-is for demonstration purposes. | |
| این مثالها برای اهداف نمایشی ارائه شدهاند. | |