Hypertext Application Language

Hypertext Application Language ( HAL ) är ett Internetutkast (ett "pågående arbete") standardkonvention för att definiera hypermedia såsom länkar till externa resurser inom JSON eller XML -kod (dock gick den senaste versionen av HAL Internet-Draft ut den 12 november, 2016.). Standarden föreslogs ursprungligen i juni 2012 specifikt för användning med JSON och har sedan dess blivit tillgänglig i två varianter, JSON och XML. De två associerade MIME- typerna är mediatyp: application/hal+xml och mediatyp: application/hal+json.

HAL skapades för att vara enkel att använda och lätt att applicera över olika domäner genom att undvika behovet av att ställa krav på hur projektet ska struktureras. Genom att bibehålla detta tillvägagångssätt med minimal påverkan har HAL gjort det möjligt för utvecklare att skapa allmänna bibliotek som enkelt kan införlivas i alla API som använder HAL. [ citat behövs ]

API:er som använder HAL förenklar användningen av bibliotek med öppen källkod och gör det möjligt att interagera med API:t med JSON eller XML. Alternativet skulle vara att behöva utveckla ett proprietärt format som i sin tur tvingar utvecklare att lära sig använda ännu ett främmande format.

Konvent

HAL är uppbyggt på ett sådant sätt att de representerar element baserat på två begrepp: Resurser och Länkar. Resurser består av URI- länkar, inbäddade resurser, dina standarddata (vare sig det är JSON eller XML) och icke-URI-länkar. Länkar har en mål-URI, såväl som namnet på länken (kallas "rel"), såväl som valfria egenskaper utformade för att ta hänsyn till utfasning och innehållsförhandling.

Exempel

Allmän resurs


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

Inbäddad resurs


   
     
       
    
  
   
     
       
         
           
        
      
       
       
       
    
  
   
   
 {  "_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-kokbok"  ,  "namn"  :  "HAL kokbok"  } 

Samlingar


   
     
       
    
     
       
    
     
       
    
     
       
    
     
       
    
  
   
     
       
         
           
        
      
       
       
       
    
  
   
   
 {  "_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/bok/katalog"  },  "senaste"  :  {  "href"  :  "http://example.com/api/bok/kommande-böcker"  }  },  " _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 även

externa länkar