Skip to content

Examples

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

Arbeitsagentur Jobbörse

HTTP
@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

HTTP
@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

HTTP
@git_api_key=???

###
fragment IOParts on Repository {
  description
  diskUsage
}

POST https://api.github.com/graphql
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
Content-Type: application/json
Authorization: Bearer {{git_api_key}}


gql foo < ./graphql.gql

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

gRPCb.in

HTTP
proto < ./proto
proto < ./grpcbin.proto
@host=grpc.postman-echo.com/

###

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

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


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

{{@streaming

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

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

{{@streaming

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

Httpbin

HTTP

/*
# 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 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 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 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 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 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 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 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 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 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 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

HTTP

POST https://apps.learnwebservices.com/services/hello
Content-Type: application/xml

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

SpaceX

Rest API

HTTP

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

###

GET /launches/latest


GET /capsules

GraphQL API

HTTP
POST https://api.spacex.land/graphql
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

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