update
Browse files- app/Http/controller/G1 +1 -1
- app/Http/controller/G4 +1 -0
- app/Http/controller/test_foldersa +1 -0
- routers/proxy.py +2 -1
- routers/supebase.py +73 -0
app/Http/controller/G1
CHANGED
@@ -1 +1 @@
|
|
1 |
-
Subproject commit
|
|
|
1 |
+
Subproject commit e10f2f202c1dfe7aa1823cf31d7f1b7b5d234e55
|
app/Http/controller/G4
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
Subproject commit 0c647a6546b73c71d73253cd020a4e15028fd5a9
|
app/Http/controller/test_foldersa
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
Subproject commit ecdae954560ae7f9fe2ac2473eddf89053dc46fb
|
routers/proxy.py
CHANGED
@@ -1,9 +1,10 @@
|
|
1 |
from fastapi import APIRouter, Request, HTTPException, Response
|
2 |
import httpx
|
|
|
|
|
3 |
|
4 |
LARAVEL_URL = "http://localhost:8000"
|
5 |
router = APIRouter(prefix="/laravel", tags=["laravel"])
|
6 |
-
|
7 |
# GET
|
8 |
@router.get("/route/{path:path}")
|
9 |
async def proxy_get(path: str, request: Request):
|
|
|
1 |
from fastapi import APIRouter, Request, HTTPException, Response
|
2 |
import httpx
|
3 |
+
rom fastapi import APIRouter, Request, HTTPException, Response
|
4 |
+
import httpx
|
5 |
|
6 |
LARAVEL_URL = "http://localhost:8000"
|
7 |
router = APIRouter(prefix="/laravel", tags=["laravel"])
|
|
|
8 |
# GET
|
9 |
@router.get("/route/{path:path}")
|
10 |
async def proxy_get(path: str, request: Request):
|
routers/supebase.py
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from fastapi import FastAPI, HTTPException
|
2 |
+
from pydantic import BaseModel
|
3 |
+
import requests
|
4 |
+
from fastapi import APIRouter, Request, HTTPException, Response
|
5 |
+
import httpx
|
6 |
+
|
7 |
+
LARAVEL_URL = "http://localhost:8000"
|
8 |
+
router = APIRouter(prefix="/supabase", tags=["supabase"])
|
9 |
+
#app = FastAPI()
|
10 |
+
|
11 |
+
# Supabase 設定
|
12 |
+
SUPABASE_URL = "https://rootomzbucovwdqsscqd.supabase.co"
|
13 |
+
SUPABASE_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." # 略
|
14 |
+
SERVICE_ROLE_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." # 略
|
15 |
+
|
16 |
+
# データモデル
|
17 |
+
class Message(BaseModel):
|
18 |
+
content: str
|
19 |
+
|
20 |
+
class MessageUpdate(BaseModel):
|
21 |
+
id: int
|
22 |
+
content: str
|
23 |
+
|
24 |
+
headers = {
|
25 |
+
"apikey": SUPABASE_KEY,
|
26 |
+
"Authorization": f"Bearer {SERVICE_ROLE_KEY}",
|
27 |
+
"Content-Type": "application/json"
|
28 |
+
}
|
29 |
+
|
30 |
+
# GET: 全取得(10件)
|
31 |
+
@router.get("/messages")
|
32 |
+
def read_messages():
|
33 |
+
url = f"{SUPABASE_URL}/rest/v1/messages?select=*&limit=10&order=id.desc"
|
34 |
+
res = requests.get(url, headers=headers)
|
35 |
+
if res.status_code != 200:
|
36 |
+
raise HTTPException(status_code=res.status_code, detail=res.text)
|
37 |
+
return res.json()
|
38 |
+
|
39 |
+
# GET: 特定ID
|
40 |
+
@router.get("/messages/{message_id}")
|
41 |
+
def read_message(message_id: int):
|
42 |
+
url = f"{SUPABASE_URL}/rest/v1/messages?id=eq.{message_id}&select=*"
|
43 |
+
res = requests.get(url, headers=headers)
|
44 |
+
if res.status_code != 200 or not res.json():
|
45 |
+
raise HTTPException(status_code=404, detail="Message not found")
|
46 |
+
return res.json()[0]
|
47 |
+
|
48 |
+
# POST: 新規作成
|
49 |
+
@router.post("/messages")
|
50 |
+
def create_message(msg: Message):
|
51 |
+
url = f"{SUPABASE_URL}/rest/v1/messages"
|
52 |
+
res = requests.post(url, headers={**headers, "Prefer": "return=representation"}, json=msg.dict())
|
53 |
+
if res.status_code >= 300:
|
54 |
+
raise HTTPException(status_code=res.status_code, detail=res.text)
|
55 |
+
return res.json()
|
56 |
+
|
57 |
+
# PUT: 更新
|
58 |
+
@router.put("/messages/{message_id}")
|
59 |
+
def update_message(message_id: int, msg: Message):
|
60 |
+
url = f"{SUPABASE_URL}/rest/v1/messages?id=eq.{message_id}"
|
61 |
+
res = requests.patch(url, headers={**headers, "Prefer": "return=representation"}, json=msg.dict())
|
62 |
+
if res.status_code >= 300 or not res.json():
|
63 |
+
raise HTTPException(status_code=404, detail="Update failed")
|
64 |
+
return res.json()
|
65 |
+
|
66 |
+
# DELETE: 削除
|
67 |
+
@router.delete("/messages/{message_id}")
|
68 |
+
def delete_message(message_id: int):
|
69 |
+
url = f"{SUPABASE_URL}/rest/v1/messages?id=eq.{message_id}"
|
70 |
+
res = requests.delete(url, headers=headers)
|
71 |
+
if res.status_code >= 300:
|
72 |
+
raise HTTPException(status_code=res.status_code, detail="Delete failed")
|
73 |
+
return {"status": "deleted", "id": message_id}
|