Integration Guide
Learn how to integrate Moon API with popular frameworks and platforms. This guide provides step-by-step instructions for common integration scenarios.
React Integration
1. Install Dependencies
bash
npm install axios2. Create API Client
Create a new file src/services/moonApi.js:
javascript
import axios from 'axios';
const moonApi = axios.create({
baseURL: 'https://moon-phase.p.rapidapi.com',
headers: {
'X-RapidAPI-Key': process.env.REACT_APP_RAPIDAPI_KEY,
'X-RapidAPI-Host': 'moon-phase.p.rapidapi.com'
}
});
export const getMoonPhase = async () => {
const response = await moonApi.get('/basic');
return response.data;
};
export const getDetailedData = async ({ lat, lon }) => {
const response = await moonApi.get('/advanced', {
params: { lat, lon }
});
return response.data;
};ℹ️
Make sure to create a .env file in your project root and add your RapidAPI key as REACT_APP_RAPIDAPI_KEY.
3. Create Custom Hook
Create a custom hook src/hooks/useMoonData.js:
javascript
import { useState, useEffect } from 'react';
import { getMoonPhase } from '../services/moonApi';
export const useMoonData = () => {
const [moonData, setMoonData] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
const fetchData = async () => {
try {
const data = await getMoonPhase();
setMoonData(data);
setLoading(false);
} catch (err) {
setError(err.message);
setLoading(false);
}
};
fetchData();
}, []);
return { moonData, loading, error };
};4. Use in Components
Example usage in a React component:
jsx
import React from 'react';
import { useMoonData } from '../hooks/useMoonData';
const MoonPhase = () => {
const { moonData, loading, error } = useMoonData();
if (loading) return Loading...;
if (error) return Error: {error};
return (
Current Moon Phase
Phase: {moonData.phase_name}
Stage: {moonData.stage}
Days until full moon: {moonData.days_until_next_full_moon}
);
};