juliacomputing/openapi.jl/openapi-jl

Claude Code and agent skill by juliacomputing/openapi.jl

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Install

npx vskill@latest install juliacomputing/openapi.jl/openapi-jl

SKILL.md

Using OpenAPI.jl

Use this guide when a task needs to inspect an OpenAPI description, generate a Julia client, or create a basic OpenAPI document from Julia declarations.

Read and inspect a description

julia
using OpenAPI
source = OpenAPI.load("openapi.yaml")
println(source.version)
diagnostics = OpenAPI.check("openapi.yaml")
foreach(println, diagnostics)
api = OpenAPI.normalize(source)
println(api.title)
println(length(api.operations))

Use using HTTP before loading an HTTP or HTTPS URL.

Generate a Julia client

julia
using OpenAPI, HTTP
OpenAPI.client(
"https://example.com/openapi.json";
name = "ExampleClient",
path = "ExampleClient.jl",
)

The target environment for ExampleClient.jl must contain OpenAPI.jl, HTTP.jl, and JSON.jl.

julia
include("ExampleClient.jl")
client = ExampleClient.Client("https://api.example.com")
ExampleClient.authorization!(client, ENV["EXAMPLE_TOKEN"])
result = ExampleClient.list_widgets(; client)

Use ExampleClient.ABSENT for an omitted optional value. Use nothing only for an explicit nullable value. Pass with_http_info=true when status and headers are needed.

External references

Local roots may read relative references from their directory. Add explicit roots when needed:

julia
api = OpenAPI.normalize(
"specs/root.yaml";
file_roots = ["schemas", "shared-specs"],
)

A URL root permits same-origin references. Use allow_remote_refs=true only when the document is trusted to select cross-origin resources. For a controlled resource store, pass an OpenAPI.SchemaEngine.Resources.AbstractRetriever as retriever.

Strict and permissive modes

Keep strict=true for normal work. If a public description uses a known ecosystem extension, inspect the diagnostics before using permissive mode:

julia
api = OpenAPI.normalize(source; strict = false)
foreach(println, api.diagnostics)

Permissive mode does not bypass unsupported feature checks. Client generation still fails for OAS 3.2 querystring parameters and streaming or positional itemSchema, itemEncoding, and prefixEncoding behavior.

Custom body codecs

julia
ExampleClient.codec!(
client,
"application/cbor";
encode = (value, media_type) -> encode_cbor(value),
decode = (bytes, media_type) -> decode_cbor(bytes),
)

Use this mechanism for XML and other representations that do not have a built-in codec.

Create a document

julia
using OpenAPI, JSON
operations = [
OpenAPI.Operation(
id = "get_item",
method = :GET,
path = "/items/{id}",
params = [OpenAPI.Param("id", :path, Int)],
responsetype = Item,
),
]
document = OpenAPI.document(operations; title = "Items", version = "1.0.0")
println(JSON.json(document; pretty = 2))

This authoring API covers common Julia endpoint declarations. It is not a general builder for every OpenAPI Object. Build advanced documents as JSON-like objects and pass them through OpenAPI.validate or OpenAPI.normalize.

Verify generated output

At minimum:

  1. Include the generated source in a fresh module.
  2. Exercise a real or local HTTP endpoint.
  3. Inspect serialized path, query, header, cookie, and body values.
  4. Test a documented success and a documented error response.
  5. Keep request and response schema validation enabled.

See README.md for the detailed feature and support matrix.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

  • SKILL.md in the repositoryCheckingSKILL.md

Popularity

Repository stars
56
Repository forks
16
7-day trend score
20

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/juliacomputing/openapi.jl/openapi-jl/badge)](https://verified-skill.com/skills/juliacomputing/openapi.jl/openapi-jl)

Something wrong with this skill or its page? Tell us.