Initial commit: Add http-convert project
Some checks failed
CI / test (push) Has been cancelled

This commit is contained in:
2026-01-29 11:34:22 +00:00
parent b4236d73ba
commit 3f4cd2e127

View File

@@ -0,0 +1,50 @@
from pydantic import BaseModel, Field
from typing import Optional, Dict, Any, List
from enum import Enum
class HttpMethod(str, Enum):
GET = "GET"
POST = "POST"
PUT = "PUT"
PATCH = "PATCH"
DELETE = "DELETE"
HEAD = "HEAD"
OPTIONS = "OPTIONS"
class HTTPRequest(BaseModel):
method: HttpMethod = HttpMethod.GET
url: str
headers: Dict[str, str] = Field(default_factory=dict)
params: Dict[str, str] = Field(default_factory=dict)
body: Optional[str] = None
body_json: Optional[Dict[str, Any]] = None
def get_final_url(self) -> str:
if self.params:
param_str = "&".join(f"{k}={v}" for k, v in self.params.items())
separator = "&" if "?" in self.url else "?"
return f"{self.url}{separator}{param_str}"
return self.url
class OutputFormat(str, Enum):
CURL = "curl"
HTTPie = "httpie"
FETCH = "fetch"
AXIOS = "axios"
class InputFormat(str, Enum):
CURL = "curl"
HTTPie = "httpie"
FETCH = "fetch"
AXIOS = "axios"
class ConversionResult(BaseModel):
original_format: InputFormat
target_format: OutputFormat
original_request: HTTPRequest
converted_code: str