Hypertext -applikationssprog - Hypertext Application Language

Hypertext Application Language ( HAL ) er et internetudkast (en "work in progress") standardkonvention til at definere hypermedier såsom links til eksterne ressourcer inden for JSON eller XML- kode (den seneste version af HAL Internet-Draft udløb imidlertid den 12. november, 2016.). Standarden blev oprindeligt foreslået i juni 2012 specifikt til brug med JSON og er siden blevet tilgængelig i to varianter, JSON og XML. De to tilknyttede MIME -typer er medietype: application/hal+xml og medietype: application/hal+json.

HAL blev skabt til at være enkel at bruge og let anvendelig på tværs af forskellige domæner ved at undgå behovet for at stille krav til, hvordan projektet struktureres. Ved at opretholde denne minimal impact-tilgang har HAL gjort det muligt for udviklere at oprette generelle biblioteker, som let kan inkorporeres i enhver API, der bruger HAL.

API'er, der anvender HAL, forenkler brugen af open source -biblioteker og gør det muligt at interagere med API'en ved hjælp af JSON eller XML. Alternativet ville være at skulle udvikle et proprietært format, som igen tvinger udviklere til at lære at bruge endnu et udenlandsk format.

Konvention

HAL er struktureret på en sådan måde, at det repræsenterer elementer baseret på to begreber: Ressourcer og links. Ressourcer består af URI -links, integrerede ressourcer, dine standarddata (det være sig JSON eller XML) og ikke -URI -links. Links har en mål -URI samt navnet på linket (kaldet 'rel') samt valgfrie egenskaber, der er designet til at være opmærksom på afskrivninger og indholdsforhandlinger.

Eksempel

Generel ressource

{
  "_links": {
    "self": {
      "href": "http://example.com/api/book/hal-cookbook"
    }
  },
  "id": "hal-cookbook",
  "name": "HAL Cookbook"
}

Indlejret ressource

{
  "_links": {
    "self": {
      "href": "http://example.com/api/book/hal-cookbook"
    }
  },
  "_embedded": {
    "author": {
      "_links": {
        "self": {
          "href": "http://example.com/api/author/shahadat"
        }
      },
      "id": "shahadat",
      "name": "Shahadat Hossain Khan",
      "homepage": "http://author-example.com"
    }
  },
  "id": "hal-cookbook",
  "name": "HAL Cookbook"
}

Samlinger

{
  "_links": {
    "self": {
      "href": "http://example.com/api/book/hal-cookbook"
    },
    "next": {
      "href": "http://example.com/api/book/hal-case-study"
    },
    "prev": {
      "href": "http://example.com/api/book/json-and-beyond"
    },
    "first": {
      "href": "http://example.com/api/book/catalog"
    },
    "last": {
      "href": "http://example.com/api/book/upcoming-books"
    }
  },
  "_embedded": {
    "author": {
      "_links": {
        "self": {
          "href": "http://example.com/api/author/shahadat"
        }
      },
      "id": "shahadat",
      "name": "Shahadat Hossain Khan",
      "homepage": "http://author-example.com"
    }
  },
  "id": "hal-cookbook",
  "name": "HAL Cookbook"
}

Se også

Referencer

eksterne links