API Maker

The backend engine for the AI era

Team & delivery

Team and Tools

A workspace for each developer on one server, and the tools around the APIs: Swagger, types, snippets, a debugger and code search.

The admin creates an account for each developer: its own login, API path, secrets and Git branch, and database name masking gives it its own copy of each database under the same name. Around the APIs, each API user gets Swagger docs, your schemas become TypeScript interfaces, the API testing page writes client code in 21 languages, and you can debug, search all your code, or edit it in your own editor.

See it live

Step through it, slow it down, or open the full canvas.

api-maker/features/developer-toolsLive
  • Request
  • Answer
  • Code
  • Stopped
Snippets
21languages
Swagger
0APIs listed
Types
0from schemas
Found
0matches

Try any API in the panel. Pick an API, get a sample payload, set the token of a test user and send it. Save the request as a state, it goes to Git with your code.

How it works

  1. Try any API in the panel.

    Pick an API, get a sample payload, set the token of a test user and send it. Save the request as a state, it goes to Git with your code.

  2. The same request as code.

    Copy it for cURL, JavaScript, Node.js, Python, Java, Go, C#, PHP, Swift, Dart and more: 21 languages with their variants.

  3. Swagger docs per API user.

    Turn on Swagger docs for an API user and share its URL: it lists only the APIs its groups allow. Turn them off and the URL stops answering.

  4. Your schemas become TypeScript interfaces.

    db-interfaces has an interface for every table, grouped by instance and database. Your code imports them and the editor completes the fields.

  5. Breakpoints in the admin panel.

    Enable debugging and set a breakpoint in the code editor: the Debug tab of API Testing stops there, in your TypeScript, with the values of every variable.

  6. Every file of your code in one editor.

    Search every file of the account in the IDE of the panel, go to the definition of a name in any language, see who wrote each line in git, or sync the code with your own editor.

What you get

A debugger for every language

Click the margin of the code editor to set a breakpoint, send a request, and step through TypeScript, Python, PHP, C#, Go, Rust, Java or Kotlin right in the admin panel, into your utility classes too: the Debug tab of API Testing shows the variables, the call stack and the console.

A workspace each

Developers sign in with their own account and API path, with their own secrets and Git branch, and change APIs, schemas and settings without touching the work of others.

One account, several editors

Developers can also sync one account together, each from their own editor with the local client and the same sync token: a save reaches the others within a second, each line of their terminals says who made the change, the admin panel shows who is connected, and the connection is encrypted without the token ever traveling.

Database name masking

Everyone writes the database main in code and requests. For priya it runs on main_priya, for omar on main_omar: nothing to rename before a pull request.

Swagger per API user

Each API user can have a Swagger URL with a random part, which lists the system, custom and database APIs that user can call.

An example

Three developers, one sprint

Priya adds an orders API, Omar changes the product schema and Lin writes a migration, at the same time on the same server. Each works on their own branch and their own copy of the database, then opens a pull request as usual.

Typed code with the generated interfacescustom-api.ts
import * as T from 'types';import * as db from 'db-interfaces';async function main(g: T.IAMGlobal) {    const products = await g.sys.db.getAll<db.shop.main.IProducts>({        instance: 'shop', database: 'main', collection: 'products',    });    return products.map(p => p.name); // p is typed}module.exports = main;

One namespace per instance and database, and an interface I + the table name in PascalCase: open Generated Interfaces to see yours.

Good to know

  • Masked databases are separate databases: create and fill the copy of each developer, for example with migration scripts.
  • Schedulers of developer accounts never run in the background: developers run them by hand.
  • Debugging happens in the admin panel, on the API Testing page: no IDE attaches to a debug runner, and no debug port is open, the server alone reaches it.

Questions

Who can create developer accounts?

The admin user, from Dev Accounts in the Utility menu. The API path and the email of each account must be unique.

Do developers need a server each?

No. Developer accounts share one server, each working in its own space. API Maker Launchpad is there for those who want API Maker on their own computer.

Which languages do snippets support?

C, C#, cURL, Dart, Go, HTTP, Java, JavaScript, Kotlin, Node.js, Objective-C, OCaml, PHP, Postman CLI, PowerShell, Python, R, Ruby, Rust, Shell and Swift, with their variants.