SuperAPI AI Directory

rest-client-generator

Coding & development

View repository

Updated 10-15 21:33

About this skill

REST Client Generator Skill

This is a skill for generating REST API client code.

Main Features

  • Axios client: JavaScript/TypeScript
  • Fetch API: Modern JavaScript
  • Requests: Python
  • HTTPClient: Java

Axios (TypeScript)

import axios, { AxiosInstance } from 'axios';

class UserAPI {
  private client: AxiosInstance;

constructor(baseURL: string) { this.client = axios.create({ baseURL, timeout: 5000, headers: { 'Content-Type': 'application/json' } });

this.setupInterceptors();

}

private setupInterceptors() { this.client.interceptors.request.use( (config) => { const token = localStorage.getItem('token'); if (token) { config.headers.Authorization = Bearer ${token}; } return config; } );

this.client.interceptors.response.use(
  (response) => response,
  (error) => {
    if (error.response?.status === 401) {
      // Handle unauthorized
    }
    return Promise.reject(error);
  }
);

}

async getUsers(): Promise<User[]> { const { data } = await this.client.get('/users'); return data; }

async createUser(user: CreateUserDTO): Promise { const { data } = await this.client.post('/users', user); return data; }

async updateUser(id: string, user: UpdateUserDTO): Promise { const { data } = await this.client.put(/users/${id}, user); return data; }

async deleteUser(id: string): Promise { await this.client.delete(/users/${id}); } }

export const userAPI = new UserAPI('https://api.example.com');


## Python (requests)

```python
import requests
from typing import List, Optional

class UserAPI:
    def __init__(self, base_url: str, api_key: str):
        self.base_url = base_url
        self.session = requests.Session()
        self.session.headers.update({
            'Authorization': f'Bearer {api_key}',
            'Content-Type': 'application/json'
        })

    def get_users(self) -> List[dict]:
        response = self.session.get(f'{self.base_url}/users')
        response.raise_for_status()
        return response.json()

    def create_user(self, user_data: dict) -> dict:
        response = self.session.post(
            f'{self.base_url}/users',
            json=user_data
        )
        response.raise_for_status()
        return response.json()

    def update_user(self, user_id: str, user_data: dict) -> dict:
        response = self.session.put(
            f'{self.base_url}/users/{user_id}',
            json=user_data
        )
        response.raise_for_status()
        return response.json()

    def delete_user(self, user_id: str) -> None:
        response = self.session.delete(f'{self.base_url}/users/{user_id}')
        response.raise_for_status()

Version Information

  • Version: 1.0.0