Как да свържете RV приемник

Доколкото виждам в спецификацията JSON-LD, раздел 3.1 - Контекстът, @context може да бъде:

  • вграден JSON обект:

    { '@context': { 'name': 'http://schema.org/name' } } 
  • или низ, представляващ URI на външен JSON-LD файл съдържащ такъв JSON обект:

    { '@context': 'https://json-ld.org/contexts/person.jsonld' } 

Въпреки това, когато се използва с речника schema.org, @context винаги се използва по този начин:

{ '@context': 'http://schema.org', } 

Въпреки че http://schema.org е не URI на JSON-LD документ.

Какво пропуснах?

Schema.org използва договаряне на съдържание, за да предостави JSON-LD контекстния файл.

Ако поискате http://schema.org докато изпращате заглавката на заявката, която приемате / предпочитате application/ld+json, това се случва:

  1. http://schema.org 301-пренасочва към https://schema.org/

    HTTP/1.1 301 Moved Permanently Content-Type: text/html Location: https://schema.org/ 
  2. https://schema.org/ 302-пренасочва към https://schema.org/docs/jsonldcontext.jsonld

    HTTP/1.1 302 Found Content-Type: text/html; charset=utf-8 Location: https://schema.org/docs/jsonldcontext.jsonld 
  3. https://schema.org/docs/jsonldcontext.jsonld се доставя

    HTTP/1.1 200 OK Content-Type: application/ld+json; charset=utf-8 

Можете да го тествате сами с къдрене:

curl -L -H 'Accept: application/ld+json' http://schema.org 

-L кара къдренето да следва пренасочвания
-H включва следната заглавка (Accept: application/ld+json) в заявката

  • Дори не ми е минавало през ума, че в този контекст могат да се използват преговори за съдържание. Това е напълно логично. Благодаря ти!
  • Разбирам, че от писане jsonld вместо това разчита на заглавката на HTTP Link за извличане на jsonld контексти. Можете да го проверите, като изпълните curl -IL http://schema.org. Вижте w3.org/TR/json-ld11-api/#loaddocumentcallback за текущия алгоритъм.

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?

Полезна информация