Project Structure
Understanding how to organize your work in Packable starts with projects. This guide will help you structure your API integrations effectively.
What is a Project?
A project in Packable represents a single API. Each project acts as a container for all SDK generations related to one specific API specification.
Think of it this way: if you have multiple APIs (e.g., a Users API, a Payments API, and an Analytics API), you would create three separate projects—one for each API.
One API, One Project
This one-to-one relationship ensures:
- Clean separation: Each API's SDKs are isolated and independently managed
- Version control: Track changes and versions specific to each API
- Easy maintenance: Update, regenerate, or modify SDKs without affecting other APIs
- Clear organization: Quickly find and manage the SDKs for any given API
Creating SDKs within a Project
Once you've created a project for your API, you can generate multiple SDKs from it. Each SDK targets a different programming language or framework.
Multiple Languages, One Source
From a single project (API), you can create SDKs for:
- TypeScript/JavaScript
- Python
- Go
- Java
- Ruby
- PHP
- C#
All these SDKs are generated from the same OpenAPI specification, ensuring consistency across all languages.
Example Structure
Here's how you might organize your projects:
Your Account
├── Payments API Project
│ ├── TypeScript SDK
│ ├── Python SDK
│ └── Go SDK
├── Users API Project
│ ├── TypeScript SDK
│ └── Java SDK
└── Analytics API Project
├── Python SDK
└── Ruby SDK
Best Practices
Naming Your Projects
Choose clear, descriptive names for your projects that identify the API:
- ✅ "Payment Processing API"
- ✅ "User Management API v2"
- ✅ "Public REST API"
- ❌ "Project 1"
- ❌ "Test"
When to Create a New Project
Create a new project when:
- You have a completely separate API with its own OpenAPI specification
- You're working with different API versions that have breaking changes
- You need to maintain separate SDKs for internal vs. external APIs
When to Use the Same Project
Keep SDKs in the same project when:
- They're generated from the same API specification
- You just need SDKs in different programming languages
- You're working with minor version updates that don't break compatibility
Each project can have its own configuration, custom code, and version history, giving you full control over how your SDKs are generated and distributed.