Examples

Here is just a short list of possible use cases. The source code can be found directly in the Github repositoryopen in new window

Arbeitsagentur Jobbörse

@job_clientId=c003a37f-024f-462a-b36d-b001be4cd24a
@job_clientSecret=32a39620-32b3-4307-9aa1-511e3d7f48a8
@job_tokenEndpoint=https://api-con.arbeitsagentur.de/oauth/gettoken_cc
@job_useAuthorizationHeader=false

###

GET https://api-con.arbeitsagentur.de/prod/jobboerse/jobsuche-service/pc/v2/app/jobs?FCT.AKTUALITAET=100&FCT.ANGEBOTSART=ARBEIT
Authorization: oauth2 client_credentials job

ArgoCD

@host=http://argocd-server:8080
@app=testapp
@revision=master
@profile=dev

###
# @name session
POST {{host}}/argocd/api/v1/session
{
    "username": "admin",
    "password": "password"
}

###
# get applications
# @ref session
GET {{host}}/argocd/api/v1/applications
Authorization: Bearer {{session.token}}


###
# create application
# @ref session
POST {{host}}/argocd/api/v1/applications
Authorization: Bearer {{session.token}}
{
    "metadata": {
        "name": "{{app}}",
        "namespace": "argocd"  
    },
    "spec": {
        "source": {
            "repoURL": "https://github.com/httpyac/argocd.git",
            "path": "argocd/{{app}}",
            "targetRevision": "{{revision}}",
            "helm": {
                "valueFiles": ["values-{{profile}}.yaml","values.yaml"]
            }
        },
        "destination": {
            "server": "https://kubernetes.default.svc",
            "namespace": "argocd"
        },
        "project": "default",
        "syncPolicy": {
            "automated":{}
        }
    }  
}

Github GraphQL

@git_api_key=???

###
fragment IOParts on Repository {
  description
  diskUsage
}

POST https://api.github.com/graphql HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{git_api_key}}

query test($name: String!, $owner: String!) {
  repository(name: $name, owner: $owner) {
    name
    fullName: nameWithOwner
    ...IOParts
    forkCount
    stargazers(first: 5) {
        totalCount
        nodes {
            login
            name
        }
    }
    watchers {
        totalCount
    }
  }
}

{
    "name": "vscode-httpyac",
    "owner": "AnWeber"
}


POST https://api.github.com/graphql HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{git_api_key}}


gql foo < ./graphql.gql

{
    "name": "vscode-httpyac",
    "owner": "AnWeber"
}

gRPCb.in

proto < ./hello.proto
proto < ./grpcbin.proto
@host=grpcb.in:9000

###

GRPC /hello.HelloService/sayHello
{
  "greeting": "world"
}

GRPC /hello.HelloService/LotsOfReplies
{
  "greeting": "world"
}


GRPC /hello.HelloService/lotsOfGreetings
{
  "greeting": "world."
}

{{@streaming

  async function writeStream(){
    await sleep(1000);
    grpcStream.write({
      greeting: 'How are you?',
    });
    await sleep(1000);
    grpcStream.write({
      greeting: 'I can stream.',
    });
  }
  exports.waitPromise = writeStream();
}}

GRPC /hello.HelloService/BidiHello
{
  "greeting": "world"
}

{{@streaming

  async function writeStream(){
    await sleep(1000);
    grpcStream.write({
      greeting: ', how are you?',
    });
    await sleep(1000);
    grpcStream.write({
      greeting: ', I can stream.',
    });
  }
  exports.waitPromise = writeStream();
}}



###

GRPC /grpcbin.GRPCBin/SpecificError
{
  "code": 4,
  "reason": "Meaning of life"
}
GRPC /grpcbin.GRPCBin/RandomError
{
  "fString": "bar"
}
GRPC /grpcbin.GRPCBin/HeadersUnary


GRPC /grpcbin.GRPCBin/NoResponseUnary

Httpbin


/*
# httpbin.org (0.9.2)

> [ Base URL: httpbin.org/ ]

A simple HTTP Request & Response Service

**Run locally:** `$ docker run -p 80:80 kennethreitz/httpbin`

[the developer - Website](https://kennethreitz.org/)
[Send email to the developer](me@kennethreitz.org)
*/


/*
## Http Methods

Testing different HTTP verbs
*/


/*
## Status Codes

Generates responses with given status code
*/

DELETE https://httpbin.org/delete HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:00 GMT
content-type: application/json
content-length: 361
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

{
  "args": {},
  "data": "",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br",
    "Host": "httpbin.org",
    "User-Agent": "httpyac",
    "X-Amzn-Trace-Id": "Root=1-60d0ea98-6446cd5e7dfa0a805da95cad"
  },
  "json": null,
  "origin": "79.243.57.74",
  "url": "https://httpbin.org/delete"
}

###

GET https://httpbin.org/get HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:05 GMT
content-type: application/json
content-length: 295
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

{
  "args": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br",
    "Host": "httpbin.org",
    "User-Agent": "httpyac",
    "X-Amzn-Trace-Id": "Root=1-60d0ea9d-3dfb873f497a9e6d50b2eccc"
  },
  "origin": "79.243.57.74",
  "url": "https://httpbin.org/get"
}

###

PATCH https://httpbin.org/patch HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:07 GMT
content-type: application/json
content-length: 388
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

{
  "args": {},
  "data": "",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br",
    "Content-Length": "0",
    "Host": "httpbin.org",
    "User-Agent": "httpyac",
    "X-Amzn-Trace-Id": "Root=1-60d0ea9f-7e49d0a404e13ce7386fb746"
  },
  "json": null,
  "origin": "79.243.57.74",
  "url": "https://httpbin.org/patch"
}

###

POST https://httpbin.org/post HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:10 GMT
content-type: application/json
content-length: 387
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

{
  "args": {},
  "data": "",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br",
    "Content-Length": "0",
    "Host": "httpbin.org",
    "User-Agent": "httpyac",
    "X-Amzn-Trace-Id": "Root=1-60d0eaa2-3379384b530308d96e9ade95"
  },
  "json": null,
  "origin": "79.243.57.74",
  "url": "https://httpbin.org/post"
}

###

PUT https://httpbin.org/put HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:12 GMT
content-type: application/json
content-length: 386
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

{
  "args": {},
  "data": "",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br",
    "Content-Length": "0",
    "Host": "httpbin.org",
    "User-Agent": "httpyac",
    "X-Amzn-Trace-Id": "Root=1-60d0eaa4-1a5b7a7507929e2d412e650a"
  },
  "json": null,
  "origin": "79.243.57.74",
  "url": "https://httpbin.org/put"
}

###

DELETE https://httpbin.org/status/200 HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:15 GMT
content-type: text/html; charset=utf-8
content-length: 0
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

###

GET https://httpbin.org/status/200 HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:18 GMT
content-type: text/html; charset=utf-8
content-length: 0
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

###

PATCH https://httpbin.org/status/200 HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:24 GMT
content-type: text/html; charset=utf-8
content-length: 0
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

###

POST https://httpbin.org/status/200 HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:22 GMT
content-type: text/html; charset=utf-8
content-length: 0
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

###

PUT https://httpbin.org/status/200 HTTP/1.1

HTTP/1.1 200 - OK
date: Mon, 21 Jun 2021 19:38:30 GMT
content-type: text/html; charset=utf-8
content-length: 0
connection: close
server: gunicorn/19.9.0
access-control-allow-origin: *
access-control-allow-credentials: true

Learn Webservices


POST http://www.learnwebservices.com/services/hello HTTP/1.1
Content-Type: application/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header /> \
  <soapenv:Body>
    <SayHello xmlns="http://learnwebservices.com/services/hello"> \
      <HelloRequest>
        <Name>John Doe</Name>
      </HelloRequest> \
    </SayHello>
  </soapenv:Body>
</soapenv:Envelope>

SpaceX

Rest API


@host=https://api.spacexdata.com/v4

###

GET /launches/latest HTTP/1.1


GET /capsules HTTP/1.1

GraphQL API

POST https://api.spacex.land/graphql HTTP/1.1
Content-Type: application/json


query launchesQuery($limit: Int!){
  launchesPast(limit: $limit) {
    mission_name
    launch_date_local
    launch_site {
      site_name_long
    }
    rocket {
      rocket_name
      rocket_type
    }
    ships {
      name
      home_port
      image
    }
  }
}

{
    "limit": 10
}

Spring Boot Actuator

@host=http://localhost:8080
###
GET /actuator/info HTTP/1.1
GET /actuator/env HTTP/1.1
GET /actuator/health HTTP/1.1
GET /actuator/health/liveness HTTP/1.1
GET /actuator/conditions HTTP/1.1
GET /actuator/scheduledtasks HTTP/1.1
GET /actuator/threaddump HTTP/1.1
GET /actuator/beans HTTP/1.1
GET /actuator/metrics HTTP/1.1
GET /actuator/configprops HTTP/1.1
GET /actuator/httptrace HTTP/1.1
GET /actuator/mappings HTTP/1.1
Last Updated: