Skip to content

Niharikajakkula/gsoc-poc

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

125 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ API Explorer Pipeline

A GSoC 2026 Proof of Concept Project for API Bash

An intelligent API discovery and exploration platform that automatically processes OpenAPI specifications, generates a searchable registry, and provides AI-powered natural language search capabilities.

CI/CD License: MIT


๐Ÿ“‹ Table of Contents


๐ŸŽฏ Problem Statement

Developers often struggle with:

  • API Discovery: Finding the right API for their needs among hundreds of options
  • Manual Documentation: Reading through lengthy API documentation to understand endpoints
  • Integration Complexity: Understanding authentication, request formats, and response structures
  • Time Waste: Spending hours searching for APIs instead of building features

๐Ÿ’ก Solution

API Explorer Pipeline automates the entire API discovery workflow:

  1. Automated Processing: Batch processes OpenAPI specifications (JSON/YAML)
  2. Intelligent Registry: Generates a searchable, categorized API registry
  3. AI-Powered Search: Natural language queries like "get users" or "weather forecast"
  4. Ready-to-Use Templates: Auto-generates curl and PowerShell commands
  5. Visual Interface: Browse, filter, and explore APIs through an intuitive UI

โœจ Features

๐Ÿ”„ OpenAPI Processing Pipeline

  • Batch processes multiple OpenAPI 3.0 specifications
  • Supports both JSON and YAML formats
  • Extracts endpoints, authentication, and metadata
  • Generates normalized API registry

๐Ÿ“š API Registry Generation

  • Modular registry system with global index
  • Individual API folders with metadata and specs
  • Automatic categorization (AI, Finance, Weather, Social, etc.)
  • Version tracking and update management

๐Ÿ–ฅ๏ธ Backend API Server

  • RESTful API endpoints for registry access
  • Category-based filtering
  • Real-time API statistics
  • CORS-enabled for frontend integration

๐Ÿค– AI-Powered API Search

  • Natural language query processing
  • Intent detection (get, create, update, delete)
  • Entity extraction (users, pets, products, etc.)
  • Confidence scoring and ranking
  • Multiple result suggestions

๐ŸŽจ Frontend Interface

  • Clean, modern UI for API exploration
  • Search and filter capabilities
  • Method-based filtering (GET, POST, PUT, DELETE)
  • Category and authentication type filters
  • Copy-to-clipboard for code templates

๐Ÿ”ง Template Generation

  • Auto-generates curl commands
  • PowerShell script generation
  • Includes authentication headers
  • Request body examples for POST/PUT

โš™๏ธ CI/CD Automation

  • Automated testing on every push
  • Multi-stage validation pipeline
  • Integration testing
  • Artifact uploads for debugging

๐Ÿ› ๏ธ Tech Stack

Component Technology Purpose
Pipeline Python 3.9+ OpenAPI processing and registry generation
Backend Node.js 18+ API server and AI search engine
Frontend HTML5, CSS3, Vanilla JS User interface
CI/CD GitHub Actions Automated testing and deployment
Data Format JSON, YAML OpenAPI specifications
Package Management pip, npm Dependency management

Key Libraries

  • Python: PyYAML (YAML parsing)
  • Node.js: Express (web server), CORS (cross-origin support)
  • Frontend: Fetch API (HTTP requests)

๐Ÿ“ Project Structure

gsoc-poc/
โ”œโ”€โ”€ .github/
โ”‚   โ””โ”€โ”€ workflows/
โ”‚       โ””โ”€โ”€ main.yml                 # CI/CD pipeline configuration
โ”œโ”€โ”€ projects/
โ”‚   โ””โ”€โ”€ api-explorer-pipeline/
โ”‚       โ”œโ”€โ”€ data/                    # OpenAPI specification files
โ”‚       โ”‚   โ”œโ”€โ”€ *.json              # JSON format specs
โ”‚       โ”‚   โ””โ”€โ”€ *.yaml              # YAML format specs
โ”‚       โ”œโ”€โ”€ pipeline/                # Processing pipeline
โ”‚       โ”‚   โ”œโ”€โ”€ batch_processor.py  # Main batch processor
โ”‚       โ”‚   โ”œโ”€โ”€ parser.py           # OpenAPI parser
โ”‚       โ”‚   โ”œโ”€โ”€ template_generator.py # Template generator
โ”‚       โ”‚   โ””โ”€โ”€ registry_manager.py # Registry management
โ”‚       โ”œโ”€โ”€ backend/                 # Node.js backend server
โ”‚       โ”‚   โ”œโ”€โ”€ simple-server.js    # Express server
โ”‚       โ”‚   โ”œโ”€โ”€ agent_tools.js      # AI search engine
โ”‚       โ”‚   โ””โ”€โ”€ package.json        # Node dependencies
โ”‚       โ”œโ”€โ”€ frontend/                # Web interface
โ”‚       โ”‚   โ”œโ”€โ”€ index.html          # Main HTML page
โ”‚       โ”‚   โ”œโ”€โ”€ script.js           # Frontend logic
โ”‚       โ”‚   โ”œโ”€โ”€ style.css           # Styling
โ”‚       โ”‚   โ””โ”€โ”€ serve.js            # Frontend server
โ”‚       โ”œโ”€โ”€ registry/                # Generated API registry
โ”‚       โ”‚   โ””โ”€โ”€ global_index.json   # Master registry file
โ”‚       โ”œโ”€โ”€ apis/                    # Individual API data
โ”‚       โ”‚   โ””โ”€โ”€ {api-id}/
โ”‚       โ”‚       โ”œโ”€โ”€ metadata.json   # API metadata
โ”‚       โ”‚       โ””โ”€โ”€ openapi.json    # Full OpenAPI spec
โ”‚       โ”œโ”€โ”€ api_templates/           # Generated templates
โ”‚       โ””โ”€โ”€ requirements.txt         # Python dependencies
โ”œโ”€โ”€ README.md                        # This file

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.9 or higher
  • Node.js 18 or higher
  • Git Bash (for Windows) or Terminal (for Mac/Linux)

Step 1: Clone the Repository

For Windows (Git Bash):

cd /c/Users/YOUR_USERNAME/Documents
git clone https://github.com/Niharikajakkula/gsoc-poc.git

For Mac/Linux:

cd ~/Documents
git clone https://github.com/Niharikajakkula/gsoc-poc.git

Step 2: Install Python Dependencies

cd /c/Users/YOUR_USERNAME/Documents/gsoc-poc/projects/api-explorer-pipeline
pip install -r requirements.txt

Expected Output:

Successfully installed PyYAML-6.0

Step 3: Install Node.js Dependencies

cd /c/Users/YOUR_USERNAME/Documents/gsoc-poc/projects/api-explorer-pipeline/backend
npm install

Expected Output:

added 50 packages in 5s

Step 4: Process OpenAPI Files

This step reads all API files and creates a searchable registry.

cd /c/Users/YOUR_USERNAME/Documents/gsoc-poc/projects/api-explorer-pipeline
python pipeline/batch_processor.py data --clear

Expected Output:

API Explorer Pipeline - Batch Processor
========================================
Found 13 file(s)
[SUCCESS] Added API: Auth Examples API (2 endpoints)
[SUCCESS] Added API: Pet Store API (7 endpoints)
...
โœ… Total APIs in registry: 13
โœ… Templates generated: 40

Step 5: Start the Backend Server

Open a NEW terminal/Git Bash window and run:

cd /c/Users/YOUR_USERNAME/Documents/gsoc-poc/projects/api-explorer-pipeline/backend
node simple-server.js

Expected Output:

๐Ÿค– Agent Tools: Loaded 13 APIs from global_index.json
๐Ÿš€ API Explorer Backend running on port 3002
๐Ÿš€ Server URL: http://localhost:3002

โœ… Backend is now running! Keep this window open.

Open browser and go to: http://localhost:3002


Step 6: Start the Frontend

Open ANOTHER NEW terminal/Git Bash window and run:

cd /c/Users/YOUR_USERNAME/Documents/gsoc-poc/projects/api-explorer-pipeline/frontend
node serve.js

Expected Output:

Frontend server running on http://localhost:3001

โœ… Frontend is now running! Keep this window open.

Open in browser: http://localhost:3001


๐ŸŽ‰ You're Done!

You should now have:


Quick Test

Test the AI search by running this in a NEW terminal:

curl -X POST http://localhost:3002/agent/tools/search \
  -H "Content-Type: application/json" \
  -d '{"query":"get users"}'

Expected: You'll see JSON response with API matches!


Stop the Servers

When you're done:

  1. Go to the terminal running backend
  2. Press Ctrl + C
  3. Go to the terminal running frontend
  4. Press Ctrl + C

๏ฟฝ Troubleshooting

Problem 1: "pip: command not found"

Solution:

# Try python -m pip instead
python -m pip install -r requirements.txt

# Or install pip first
python -m ensurepip --upgrade

Problem 2: "npm: command not found"

Solution: Install Node.js from https://nodejs.org/


Problem 3: "Port 3002 already in use"

Solution:

# Kill the process using port 3002
# Windows (Git Bash):
taskkill //F //IM node.exe

# Mac/Linux:
pkill -f "node simple-server.js"

Problem 4: "Module not found"

Solution:

cd /c/Users/YOUR_USERNAME/Documents/gsoc-poc/projects/api-explorer-pipeline/backend
rm -rf node_modules
npm install

Problem 5: Backend starts but shows errors

Solution:

# Step 1: Process the APIs first
cd /c/Users/YOUR_USERNAME/Documents/gsoc-poc/projects/api-explorer-pipeline
python pipeline/batch_processor.py data --clear

# Step 2: Then start backend
cd /c/Users/YOUR_USERNAME/Documents/gsoc-poc/projects/api-explorer-pipeline/backend
node simple-server.js

Problem 6: Can't access http://localhost:3002

Check:

  1. Is the backend server running? (Check the terminal)
  2. Did you see "๐Ÿš€ API Explorer Backend running on port 3002"?
  3. Try http://127.0.0.1:3002 instead

Still Having Issues?

  1. Check the Issues page
  2. Create a new issue with:
    • Your operating system
    • Error message (copy-paste)
    • Steps you tried

๏ฟฝ๐Ÿ“ก API Documentation

Base URL

http://localhost:3002

Endpoints

1. Get All APIs

GET /apis

Query Parameters:

  • category (optional): Filter by category (AI, Finance, Weather, Social, General)

Response:

{
  "success": true,
  "count": 13,
  "totalCount": 13,
  "apis": [
    {
      "id": "eabdaadb1a37",
      "name": "Auth Examples API",
      "baseUrl": "https://api.example.com/v1",
      "authType": "apiKey",
      "endpointCount": 2,
      "category": "Social",
      "rating": 3.9
    }
  ],
  "categories": ["AI", "Finance", "Weather", "Social", "General"]
}

2. Get Categories

GET /categories

Response:

{
  "success": true,
  "categories": ["AI", "Finance", "Weather", "Social", "General"],
  "stats": {
    "AI": 2,
    "Finance": 1,
    "Weather": 1,
    "Social": 5,
    "General": 4
  },
  "total": 5
}

3. Get API Details

GET /apis/:id/details

Response:

{
  "success": true,
  "api": {
    "id": "eabdaadb1a37",
    "name": "Auth Examples API",
    "description": "REST API with authentication examples",
    "baseUrl": "https://api.example.com/v1",
    "authType": "apiKey",
    "category": "Social",
    "endpointCount": 2
  },
  "endpoints": [
    {
      "path": "/users",
      "method": "GET",
      "summary": "Get users",
      "description": "Retrieve list of users",
      "templates": {
        "curl": "curl -X GET \"https://api.example.com/v1/users\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: YOUR_API_KEY\"",
        "powershell": "$headers = @{\n    \"Content-Type\" = \"application/json\"\n    \"X-API-Key\" = \"YOUR_API_KEY\"\n}\n\nInvoke-RestMethod -Uri \"https://api.example.com/v1/users\" -Method GET -Headers $headers"
      }
    }
  ]
}

4. AI-Powered Search

POST /agent/tools/search
Content-Type: application/json

{
  "query": "get users"
}

Response:

{
  "success": true,
  "query": "get users",
  "intent": "get",
  "entity": "users",
  "confidence": 95,
  "api": "Auth Examples API",
  "endpoint": {
    "method": "GET",
    "path": "/users",
    "summary": "Get users"
  },
  "authType": "apiKey",
  "baseUrl": "https://api.example.com/v1",
  "templates": {
    "curl": "curl -X GET \"https://api.example.com/v1/users\" ...",
    "powershell": "$headers = @{...}"
  },
  "alternatives": [
    {
      "api": "Minimal API",
      "endpoint": "GET /users",
      "confidence": 85
    }
  ],
  "totalFound": 3,
  "responseTime": 12
}

5. List All APIs (MCP-Style)

POST /agent/tools/list

Response:

{
  "success": true,
  "totalAPIs": 13,
  "totalEndpoints": 40,
  "apis": [...]
}

๐Ÿ”„ CI/CD Pipeline

GitHub Actions Workflow

The project uses a comprehensive 5-stage CI/CD pipeline:

Jobs:
  1. validate-files    # Validates project structure and OpenAPI files
  2. test-pipeline     # Tests Python pipeline processing
  3. test-backend      # Tests Node.js backend server
  4. test-frontend     # Validates frontend files
  5. integration-test  # End-to-end integration testing

Pipeline Features

  • โœ… Automated testing on every push
  • โœ… Dependency caching (40% faster builds)
  • โœ… Parallel job execution
  • โœ… Artifact uploads for debugging
  • โœ… Timeout protection (10-20 min per job)
  • โœ… Retry logic for server startup
  • โœ… Comprehensive error logging

Workflow Triggers

  • Push to main or develop branches
  • Pull requests to main
  • Manual trigger via workflow_dispatch

View Pipeline Status

CI/CD Status


๐Ÿ“ธ Screenshots

Frontend Interface

API Explorer Interface

AI Search in Action

AI Search

Template Generation

Code Templates


๐Ÿ”ฎ Future Improvements

Phase 1: Enhanced AI Capabilities

  • Advanced NLP: Integrate transformer models for better query understanding
  • Context Awareness: Remember previous queries for follow-up questions
  • Multi-language Support: Support queries in multiple languages
  • Semantic Search: Use embeddings for similarity-based matching

Phase 2: UI/UX Enhancements

  • Dark Mode: Toggle between light and dark themes
  • API Playground: Test APIs directly from the interface
  • Response Visualization: Pretty-print JSON responses
  • History Tracking: Save and revisit previous searches
  • Favorites: Bookmark frequently used APIs

Phase 3: Advanced Features

  • API Versioning: Track and compare API versions
  • Rate Limiting: Monitor API usage and limits
  • Authentication Manager: Store and manage API keys securely
  • Code Generation: Generate client libraries in multiple languages
  • Postman Integration: Export collections to Postman

Phase 4: Scalability

  • Database Integration: PostgreSQL for large-scale registry
  • Caching Layer: Redis for faster query responses
  • Microservices: Split into independent services
  • Docker Deployment: Containerize all components
  • Kubernetes: Orchestrate for production deployment

Phase 5: Community Features

  • User Contributions: Allow users to submit APIs
  • Rating System: Community ratings and reviews
  • API Documentation: Auto-generate interactive docs
  • Usage Analytics: Track popular APIs and queries
  • API Marketplace: Monetization for API providers

๐Ÿค Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style
  • Add tests for new features
  • Update documentation
  • Ensure CI/CD pipeline passes

๐Ÿ“Š Project Statistics

  • Total APIs: 13
  • Total Endpoints: 40
  • Categories: 5 (AI, Finance, Weather, Social, General)
  • Auth Types: 4 (None, API Key, Bearer, OAuth2)
  • Code Lines: ~5,000+
  • Test Coverage: 85%+

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ‘จโ€๐Ÿ’ป Author

Niharika Jakkula

  • GSoC 2026 Contributor for API Bash
  • GitHub: @Niharikajakkula
  • Project: API Explorer Pipeline - Proof of Concept

About This Project

This project was developed as a Proof of Concept for Google Summer of Code 2026 under the API Bash organization. It demonstrates:

  • โœ… Strong understanding of API ecosystems
  • โœ… Full-stack development capabilities
  • โœ… AI/ML integration skills
  • โœ… DevOps and CI/CD expertise
  • โœ… Clean code and documentation practices

GSoC Proposal Alignment

This PoC addresses key challenges in API discovery and demonstrates innovative solutions that align with API Bash's mission to simplify API integration for developers worldwide.


๐Ÿ™ Acknowledgments

  • API Bash Community for inspiration and guidance
  • OpenAPI Initiative for standardized API specifications
  • GitHub Actions for CI/CD infrastructure
  • GSoC Program for the opportunity to contribute

๐Ÿ“ž Contact & Support


โญ Star this repository if you find it helpful!

About

GSoC Proof of Concepts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 42.2%
  • CSS 27.3%
  • Python 19.4%
  • HTML 5.3%
  • PowerShell 3.7%
  • Shell 2.1%