# 📚 API Resources Guide ## فایل‌های منابع در این پوشه این پوشه شامل منابع کاملی از **162+ API رایگان** است که می‌توانید از آنها استفاده کنید. --- ## 📁 فایل‌ها ### 1. `crypto_resources_unified_2025-11-11.json` - **200+ منبع** کامل با تمام جزئیات - شامل: RPC Nodes, Block Explorers, Market Data, News, Sentiment, DeFi - ساختار یکپارچه برای همه منابع - API Keys embedded برای برخی سرویس‌ها ### 2. `ultimate_crypto_pipeline_2025_NZasinich.json` - **162 منبع** با نمونه کد TypeScript - شامل: Block Explorers, Market Data, News, DeFi - Rate Limits و توضیحات هر سرویس ### 3. `api-config-complete__1_.txt` - تنظیمات و کانفیگ APIها - Fallback strategies - Authentication methods --- ## 🔑 APIهای استفاده شده در برنامه برنامه فعلی از این APIها استفاده می‌کند: ### ✅ Market Data: ```json { "CoinGecko": "https://api.coingecko.com/api/v3", "CoinCap": "https://api.coincap.io/v2", "CoinStats": "https://api.coinstats.app", "Cryptorank": "https://api.cryptorank.io/v1" } ``` ### ✅ Exchanges: ```json { "Binance": "https://api.binance.com/api/v3", "Coinbase": "https://api.coinbase.com/v2", "Kraken": "https://api.kraken.com/0/public" } ``` ### ✅ Sentiment & Analytics: ```json { "Alternative.me": "https://api.alternative.me/fng", "DeFi Llama": "https://api.llama.fi" } ``` --- ## 🚀 چگونه API جدید اضافه کنیم؟ ### مثال: اضافه کردن CryptoCompare #### 1. در `app.py` به `API_PROVIDERS` اضافه کنید: ```python API_PROVIDERS = { "market_data": [ # ... موارد قبلی { "name": "CryptoCompare", "base_url": "https://min-api.cryptocompare.com/data", "endpoints": { "price": "/price", "multiple": "/pricemulti" }, "auth": None, "rate_limit": "100/hour", "status": "active" } ] } ``` #### 2. تابع جدید برای fetch: ```python async def get_cryptocompare_data(): async with aiohttp.ClientSession() as session: url = "https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH&tsyms=USD" data = await fetch_with_retry(session, url) return data ``` #### 3. استفاده در endpoint: ```python @app.get("/api/cryptocompare") async def cryptocompare(): data = await get_cryptocompare_data() return {"data": data} ``` --- ## 📊 نمونه‌های بیشتر از منابع ### Block Explorer - Etherscan: ```python # از crypto_resources_unified_2025-11-11.json { "id": "etherscan_primary", "name": "Etherscan", "chain": "ethereum", "base_url": "https://api.etherscan.io/api", "auth": { "type": "apiKeyQuery", "key": "YOUR_KEY_HERE", "param_name": "apikey" }, "endpoints": { "balance": "?module=account&action=balance&address={address}&apikey={key}" } } ``` ### استفاده: ```python async def get_eth_balance(address): url = f"https://api.etherscan.io/api?module=account&action=balance&address={address}&apikey=YOUR_KEY" async with aiohttp.ClientSession() as session: data = await fetch_with_retry(session, url) return data ``` --- ### News API - CryptoPanic: ```python # از فایل منابع { "id": "cryptopanic", "name": "CryptoPanic", "role": "crypto_news", "base_url": "https://cryptopanic.com/api/v1", "endpoints": { "posts": "/posts/?auth_token={key}" } } ``` ### استفاده: ```python async def get_news(): url = "https://cryptopanic.com/api/v1/posts/?auth_token=free" async with aiohttp.ClientSession() as session: data = await fetch_with_retry(session, url) return data["results"] ``` --- ### DeFi - Uniswap: ```python # از فایل منابع { "name": "Uniswap", "url": "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3", "type": "GraphQL" } ``` ### استفاده: ```python async def get_uniswap_data(): query = """ { pools(first: 10, orderBy: volumeUSD, orderDirection: desc) { id token0 { symbol } token1 { symbol } volumeUSD } } """ url = "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3" async with aiohttp.ClientSession() as session: async with session.post(url, json={"query": query}) as response: data = await response.json() return data ``` --- ## 🔧 نکات مهم ### Rate Limits: ```python # همیشه rate limit رو رعایت کنید await asyncio.sleep(1) # بین درخواست‌ها # یا از cache استفاده کنید cache = {"data": None, "timestamp": None, "ttl": 60} ``` ### Error Handling: ```python try: data = await fetch_api() except aiohttp.ClientError: # Fallback به API دیگه data = await fetch_fallback_api() ``` ### Authentication: ```python # برخی APIها نیاز به auth دارند headers = {"X-API-Key": "YOUR_KEY"} async with session.get(url, headers=headers) as response: data = await response.json() ``` --- ## 📝 چک‌لیست برای اضافه کردن API جدید - [ ] API را در `API_PROVIDERS` اضافه کن - [ ] تابع `fetch` بنویس - [ ] Error handling اضافه کن - [ ] Cache پیاده‌سازی کن - [ ] Rate limit رعایت کن - [ ] Fallback تعریف کن - [ ] Endpoint در FastAPI بساز - [ ] Frontend رو آپدیت کن - [ ] تست کن --- ## 🌟 APIهای پیشنهادی برای توسعه از فایل‌های منابع، این APIها خوب هستند: ### High Priority: 1. **Messari** - تحلیل عمیق 2. **Glassnode** - On-chain analytics 3. **LunarCrush** - Social sentiment 4. **Santiment** - Market intelligence ### Medium Priority: 1. **Dune Analytics** - Custom queries 2. **CoinMarketCap** - Alternative market data 3. **TradingView** - Charts data 4. **CryptoQuant** - Exchange flows ### Low Priority: 1. **Various RSS Feeds** - News aggregation 2. **Social APIs** - Twitter, Reddit 3. **NFT APIs** - OpenSea, Blur 4. **Blockchain RPCs** - Direct chain queries --- ## 🎓 منابع یادگیری - [FastAPI Async](https://fastapi.tiangolo.com/async/) - [aiohttp Documentation](https://docs.aiohttp.org/) - [API Best Practices](https://restfulapi.net/) --- ## 💡 نکته نهایی **همه APIهای موجود در فایل‌ها رایگان هستند!** برای استفاده از آنها فقط کافیست: 1. API را از فایل منابع پیدا کنید 2. به `app.py` اضافه کنید 3. تابع fetch بنویسید 4. استفاده کنید! --- **موفق باشید! 🚀**