Dog API · Capability

Dog API — Breeds

Dog API — Breeds. 9 operations. Lead operation: List All Breeds. Self-contained Naftiko capability covering one Dog API business surface.

Run with Naftiko Dog APIBreeds

What You Can Do

GET
Listallbreeds — List All Breeds
/v1/breeds/list/all
GET
Randombreedentry — Random Breed Entry
/v1/breeds/list/all/random
GET
Randombreedentries — Multiple Random Breed Entries
/v1/breeds/list/all/random/{amount}
GET
Listtoplevelbreeds — List Top-Level Breeds
/v1/breeds/list
GET
Randomtoplevelbreed — Random Top-Level Breed
/v1/breeds/list/random
GET
Randomtoplevelbreeds — Multiple Random Top-Level Breeds
/v1/breeds/list/random/{amount}
GET
Listsubbreeds — List Sub-Breeds
/v1/breed/{breed}/list
GET
Randomsubbreed — Random Sub-Breed
/v1/breed/{breed}/list/random
GET
Randomsubbreeds — Multiple Random Sub-Breeds
/v1/breed/{breed}/list/random/{amount}

MCP Tools

list-all-breeds

List All Breeds

read-only idempotent
random-breed-entry

Random Breed Entry

read-only idempotent
multiple-random-breed-entries

Multiple Random Breed Entries

read-only idempotent
list-top-level-breeds

List Top-Level Breeds

read-only idempotent
random-top-level-breed

Random Top-Level Breed

read-only idempotent
multiple-random-top-level-breeds

Multiple Random Top-Level Breeds

read-only idempotent
list-sub-breeds

List Sub-Breeds

read-only idempotent
random-sub-breed

Random Sub-Breed

read-only idempotent
multiple-random-sub-breeds

Multiple Random Sub-Breeds

read-only idempotent

Capability Spec

dog-api-breeds.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Dog API — Breeds
  description: 'Dog API — Breeds. 9 operations. Lead operation: List All Breeds. Self-contained Naftiko capability covering one Dog API business surface.'
  tags:
  - Dog API
  - Breeds
  created: '2026-05-30'
  modified: '2026-05-30'
binds: []
capability:
  consumes:
  - type: http
    namespace: dog-api-breeds
    baseUri: https://dog.ceo/api
    description: Dog API — Breeds business capability. Self-contained, no shared references.
    resources:
    - name: breeds-list-all
      path: /breeds/list/all
      operations:
      - name: listAllBreeds
        method: GET
        description: List All Breeds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: breeds-list-all-random
      path: /breeds/list/all/random
      operations:
      - name: randomBreedEntry
        method: GET
        description: Random Breed Entry
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: breeds-list-all-random-amount
      path: /breeds/list/all/random/{amount}
      operations:
      - name: randomBreedEntries
        method: GET
        description: Multiple Random Breed Entries
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: amount
          in: path
          type: integer
          required: true
          description: Number of random breed entries to return.
    - name: breeds-list
      path: /breeds/list
      operations:
      - name: listTopLevelBreeds
        method: GET
        description: List Top-Level Breeds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: breeds-list-random
      path: /breeds/list/random
      operations:
      - name: randomTopLevelBreed
        method: GET
        description: Random Top-Level Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: breeds-list-random-amount
      path: /breeds/list/random/{amount}
      operations:
      - name: randomTopLevelBreeds
        method: GET
        description: Multiple Random Top-Level Breeds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: amount
          in: path
          type: integer
          required: true
          description: Number of random top-level breed names to return.
    - name: breed-breed-list
      path: /breed/{breed}/list
      operations:
      - name: listSubBreeds
        method: GET
        description: List Sub-Breeds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name (e.g., hound, retriever, spaniel).
    - name: breed-breed-list-random
      path: /breed/{breed}/list/random
      operations:
      - name: randomSubBreed
        method: GET
        description: Random Sub-Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
    - name: breed-breed-list-random-amount
      path: /breed/{breed}/list/random/{amount}
      operations:
      - name: randomSubBreeds
        method: GET
        description: Multiple Random Sub-Breeds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
        - name: amount
          in: path
          type: integer
          required: true
          description: Number of random sub-breeds to return.
  exposes:
  - type: rest
    namespace: dog-api-breeds-rest
    port: 8080
    description: REST adapter for Dog API — Breeds. One Spectral-compliant resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/breeds/list/all
      name: v1-breeds-list-all
      description: REST surface for breeds-list-all.
      operations:
      - method: GET
        name: listAllBreeds
        description: List All Breeds
        call: dog-api-breeds.listAllBreeds
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breeds/list/all/random
      name: v1-breeds-list-all-random
      description: REST surface for breeds-list-all-random.
      operations:
      - method: GET
        name: randomBreedEntry
        description: Random Breed Entry
        call: dog-api-breeds.randomBreedEntry
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breeds/list/all/random/{amount}
      name: v1-breeds-list-all-random-amount
      description: REST surface for breeds-list-all-random-amount.
      operations:
      - method: GET
        name: randomBreedEntries
        description: Multiple Random Breed Entries
        call: dog-api-breeds.randomBreedEntries
        with:
          amount: rest.amount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breeds/list
      name: v1-breeds-list
      description: REST surface for breeds-list.
      operations:
      - method: GET
        name: listTopLevelBreeds
        description: List Top-Level Breeds
        call: dog-api-breeds.listTopLevelBreeds
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breeds/list/random
      name: v1-breeds-list-random
      description: REST surface for breeds-list-random.
      operations:
      - method: GET
        name: randomTopLevelBreed
        description: Random Top-Level Breed
        call: dog-api-breeds.randomTopLevelBreed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breeds/list/random/{amount}
      name: v1-breeds-list-random-amount
      description: REST surface for breeds-list-random-amount.
      operations:
      - method: GET
        name: randomTopLevelBreeds
        description: Multiple Random Top-Level Breeds
        call: dog-api-breeds.randomTopLevelBreeds
        with:
          amount: rest.amount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/list
      name: v1-breed-breed-list
      description: REST surface for breed-breed-list.
      operations:
      - method: GET
        name: listSubBreeds
        description: List Sub-Breeds
        call: dog-api-breeds.listSubBreeds
        with:
          breed: rest.breed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/list/random
      name: v1-breed-breed-list-random
      description: REST surface for breed-breed-list-random.
      operations:
      - method: GET
        name: randomSubBreed
        description: Random Sub-Breed
        call: dog-api-breeds.randomSubBreed
        with:
          breed: rest.breed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/list/random/{amount}
      name: v1-breed-breed-list-random-amount
      description: REST surface for breed-breed-list-random-amount.
      operations:
      - method: GET
        name: randomSubBreeds
        description: Multiple Random Sub-Breeds
        call: dog-api-breeds.randomSubBreeds
        with:
          breed: rest.breed
          amount: rest.amount
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: dog-api-breeds-mcp
    port: 9090
    transport: http
    description: MCP adapter for Dog API — Breeds. One tool per consumed operation, routed inline through this capability's consumes block.
    tools:
    - name: list-all-breeds
      description: List All Breeds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-breeds.listAllBreeds
      outputParameters:
      - type: object
        mapping: $.
    - name: random-breed-entry
      description: Random Breed Entry
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-breeds.randomBreedEntry
      outputParameters:
      - type: object
        mapping: $.
    - name: multiple-random-breed-entries
      description: Multiple Random Breed Entries
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-breeds.randomBreedEntries
      with:
        amount: tools.amount
      outputParameters:
      - type: object
        mapping: $.
    - name: list-top-level-breeds
      description: List Top-Level Breeds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-breeds.listTopLevelBreeds
      outputParameters:
      - type: object
        mapping: $.
    - name: random-top-level-breed
      description: Random Top-Level Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-breeds.randomTopLevelBreed
      outputParameters:
      - type: object
        mapping: $.
    - name: multiple-random-top-level-breeds
      description: Multiple Random Top-Level Breeds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-breeds.randomTopLevelBreeds
      with:
        amount: tools.amount
      outputParameters:
      - type: object
        mapping: $.
    - name: list-sub-breeds
      description: List Sub-Breeds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-breeds.listSubBreeds
      with:
        breed: tools.breed
      outputParameters:
      - type: object
        mapping: $.
    - name: random-sub-breed
      description: Random Sub-Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-breeds.randomSubBreed
      with:
        breed: tools.breed
      outputParameters:
      - type: object
        mapping: $.
    - name: multiple-random-sub-breeds
      description: Multiple Random Sub-Breeds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-breeds.randomSubBreeds
      with:
        breed: tools.breed
        amount: tools.amount
      outputParameters:
      - type: object
        mapping: $.