Solusi ejet buat masalah CORS dan akses API yang ribet,Made By HexZo.
Gue bikin ini karena sering banget (mungkin lu juga) mentok sama problem ini:
- Benci Error CORS: Capek lihat error
Cross-Origin Resource Sharingdi console? Proxy ini solusinya. - Males Setup Backend: Butuh data dari API publik tapi males bikin server sendiri cuma buat
fetch? Pakai ini aja. - Eksplorasi & Belajar: Cocok banget buat yang lagi belajar ngoding dan mau coba-coba berbagai macam API tanpa ribet.
Gak perlu masang. Langsung pakai api publik untuk semua kebutuhan lo.
https://proxyhexzo.netlify.app/.netlify/functions/proxy
| Fitur | Deskripsi |
|---|---|
| π Fleksibel | Bisa meneruskan request ke mayoritas API publik (REST, JSON, XML). |
| π Anti-CORS | Didesain khusus untuk jadi "obat" masalah CORS dari origin mana pun. |
| π Cukup Cepat | Lunch Di Netlify yang cepat dengan logic retry otomatis. |
| π‘οΈ Validasi Url | Ngecek URL target untuk nyegah request ke endpoint yang ga aman/ngatasin absolute link. |
| π¨βπ» Ramah Pemula | Gampang dipake sama dokumentasi jelas |
| π€ Nyaris Anti DDoS | Yah Gmn Yaks Wong ISP Netlify |
Ada dua cara utama: pake API bawaan atau proxy ke URL custom.
Pakai parameter ?api= Sama EndPoint
// Mendapatkan info IP publik
fetch('[https://proxyhexzo.netlify.app/.netlify/functions/proxy?api=info.ip](https://proxyhexzo.netlify.app/.netlify/functions/proxy?api=info.ip)')
.then(res => res.json())
.then(data => console.log(data));Pakai query ?web= untuk meneruskan request ke URL mana pun.
// Melakukan POST request ke API testing
fetch('[https://proxyhexzo.netlify.app/.netlify/functions/proxy?web=https://jsonplaceholder.typicode.com/posts](https://proxyhexzo.netlify.app/.netlify/functions/proxy?web=https://jsonplaceholder.typicode.com/posts)', {
method: 'POST',
body: JSON.stringify({ title: 'Coba POST' })
})
.then(res => res.json())
.then(data => console.log(data));Kalo Mau Self Host Ni Api Di Netlify Wajib Ikuti Langkah Di Bwh.
Syarat:
- Node.js v18+
- Akun GitHub & Netlify (yang gratisan cukup)
Langkah-langkah:
- Fork repo ini.
- Di dashboard Netlify, upload project dari repo gw yg udh lu fork.
- "Deploy site" And Done Atau
- Git Clone Repo Ini Atau Download Source.
- Upload Ke Netlify Make Netlify-Cli Biar Gampang.
- Deploy And Done
Proyek ini dibuat untuk belajar dan development. Penting untuk tahu batasannya.
| Fitur | Status | Catatan |
|---|---|---|
| URL Validation | β | Hanya URL http & https valid yang diproses. |
| Header Filtering | β | Beberapa header dari klien disaring untuk keamanan dasar. |
| Rate Limiting | β | BELUM ADA. Jangan gunakan untuk aplikasi production yang penting. |
Proxy publik yang disediakan GA MAKE RATE LIMIT. Artinya, siapa aja bisa make. pake buat belajar dan prototipe aja.
π Daftar API
- IP Address:
?api=info.ip - Geo Location:
?api=info.geoip - Time:
?api=info.time - Request Headers:
?api=info.headers
- Joke:
?api=fun.joke - Cat Fact:
?api=fun.cat_fact - Dog Image:
?api=fun.dog_image - Meme:
?api=fun.meme
- GitHub User:
?api=dev.github_user&username={nama_user} - GitHub Repos:
?api=dev.github_repos&username={nama_user} - JSONPlaceholder Post:
?api=dev.jsonplaceholder_post&id={post_id} - HTTPBin Test:
?api=dev.httpbin
- Current Weather:
?api=weather.current&location={kota} - Forecast:
?api=weather.forecast&lat={latitude}&lon={longitude}
π» Contoh Cara Make API Built In (JS, Python, cURL)
const API_BASE = '[https://proxyhexzo.netlify.app/.netlify/functions/proxy](https://proxyhexzo.netlify.app/.netlify/functions/proxy)';
// GET GitHub user info
fetch(`${API_BASE}?api=dev.github_user&username=octocat`)
.then(res => res.json())
.then(data => console.log('Nama User GitHub:', data.name));import requests
API_BASE = "[https://proxyhexzo.netlify.app/.netlify/functions/proxy](https://proxyhexzo.netlify.app/.netlify/functions/proxy)"
# GET cuaca di Jakarta
params = {"api": "weather.current", "location": "Jakarta"}
response = requests.get(API_BASE, params=params)
if response.ok:
print(response.json())
else:
print("Gagal mengambil data cuaca")# POST request via proxy
curl -X POST "[https://proxyhexzo.netlify.app/.netlify/functions/proxy?web=https://httpbin.org/post](https://proxyhexzo.netlify.app/.netlify/functions/proxy?web=https://httpbin.org/post)" \
-H "Content-Type: application/json" \
-d '{"pesan": "Hello dari cURL"}'Punya ide, nemu bug?
