Project Files
test-docs / code-examples.py
"""
MyProject API Client — Python Examples
Version: 2.0
"""
import requests
import json
class APIClient:
"""Client for MyProject API v2."""
BASE_URL = "https://api.myproject.dev/v2"
def __init__(self, api_key: str):
self.api_key = api_key
self.session = requests.Session()
self.session.headers.update({
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
})
def get_users(self, page: int = 1, limit: int = 20):
"""Get list of users."""
response = self.session.get(
f"{self.BASE_URL}/users",
params={"page": page, "limit": limit}
)
response.raise_for_status()
return response.json()
def create_user(self, name: str, email: str, role: str = "member"):
"""Create a new user."""
data = {"name": name, "email": email, "role": role}
response = self.session.post(f"{self.BASE_URL}/users", json=data)
response.raise_for_status()
return response.json()
def delete_user(self, user_id: int):
"""Delete a user by ID."""
response = self.session.delete(f"{self.BASE_URL}/users/{user_id}")
response.raise_for_status()
return response.status_code == 200
def get_projects(self, status: str = None, owner: int = None):
"""Get list of projects."""
params = {}
if status:
params["status"] = status
if owner:
params["owner"] = owner
response = self.session.get(f"{self.BASE_URL}/projects", params=params)
response.raise_for_status()
return response.json()
def create_project(self, name: str, description: str = "", visibility: str = "private"):
"""Create a new project."""
data = {"name": name, "description": description, "visibility": visibility}
response = self.session.post(f"{self.BASE_URL}/projects", json=data)
response.raise_for_status()
return response.json()
# Usage example
if __name__ == "__main__":
client = APIClient(api_key="your-api-key-here")
# Get users
users = client.get_users(page=1, limit=10)
print(f"Found {users['total']} users")
# Create a user
new_user = client.create_user(
name="Test User",
email="test@example.com",
role="member"
)
print(f"Created user: {new_user}")
# Create a project
project = client.create_project(
name="My Test Project",
description="A project for testing",
visibility="private"
)
print(f"Created project: {project}")