Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2018-01-27, 22:30
  #1
Medlem
Worldnatures avatar
Hej!

Har en skoluppgift där vi ska skapa ett quiz, och det har jag gjort

https://jsfiddle.net/ksL398xg/40/

där är den.

Men jag har gjort ett misstag och skapat egna frågor och svar vilket jag såg nu precis att man inte skulle göra.


Kod:
The questions will be public to the client application through a RESTful Web API. The first question (starting point of the application) is at the URL:

http://v*****se:20080/question
You can find the source code of the server at the GitHub repo:

https://github.com/*****/AjaxAssignment
, that is if you are interested in running the server by you self [optional, but good training].

The response of the API will tell you what kind of question you should show to the user and where to send the answers. In other word, you have to analyze the response from the server to know how to display the questions and how to send new requests for answering the questions. Hyperlink is provided by the server response in a RESTful way. The server responses will also give clues about what HTTP-methods to use and how to send the answers back.

Det jag undrar nu, hur fasen gör man med detta?

Ska hämta hem frågorna och svaren från github med api eller något? Hade uppskattat all hjälp verkligen om hur man löser detta då jag kodat quizen med html, css och JS så quizen är klar utom att jag gjort misstaget och skapat egna frågor vilket man inte skulle göra. Så hoppas någon kan hjälpa mig hur man löser detta in till min quiz.

har precis börjat i skolan så är nybörjare.
Citera
2018-01-27, 22:43
  #2
Medlem
tj.s avatar
Jag tolkar det som att du ska göra ett rest-anrop mot URL:en du har fått bifogad. I responsen som servern svarar med står det vad du ska göra efteråt. Du kan installera Postman om du vill testa rest-api:er.
Citera
2018-01-27, 22:49
  #3
Medlem
Worldnatures avatar
Citat:
Ursprungligen postat av tj.
Jag tolkar det som att du ska göra ett rest-anrop mot URL:en du har fått bifogad. I responsen som servern svarar med står det vad du ska göra efteråt. Du kan installera Postman om du vill testa rest-api:er.


ok, när jag går in på den första länken så kommer detta fram

Kod:
{"id":1,"question":"What is 1+1?","nextURL":"http://v******.se/answer/1","message":"You got your question! Now send me the answer via HTTP POST to the nextURL in JSON-format"}


vad menas med detta liksom?
Citera
2018-01-27, 22:52
  #4
Medlem
tj.s avatar
Citat:
Ursprungligen postat av Worldnature
ok, när jag går in på den första länken så kommer detta fram

Kod:
{"id":1,"question":"What is 1+1?","nextURL":"http://v******.se/answer/1","message":"You got your question! Now send me the answer via HTTP POST to the nextURL in JSON-format"}


vad menas med detta liksom?
Du har fått en response i JSON-format.
Kod:
{  
   
"id":1,
   
"question":"What is 1+1?",
   
"nextURL":"http://v******.se/answer/1",
   
"message":"You got your question! Now send me the answer via HTTP POST to the nextURL in JSON-format"

Nu ska du göra ett POST-anrop mot servern via URL:en du fick med svaret på frågan - dvs. 2 - som body. Pröva att göra det i Postman.
Citera
2018-01-27, 22:52
  #5
Moderator
Protons avatar
Citat:
Ursprungligen postat av Worldnature
Hej!

Har en skoluppgift där vi ska skapa ett quiz, och det har jag gjort

https://jsfiddle.net/ksL398xg/40/

där är den.

Men jag har gjort ett misstag och skapat egna frågor och svar vilket jag såg nu precis att man inte skulle göra.


Kod:
The questions will be public to the client application through a RESTful Web API. The first question (starting point of the application) is at the URL:

http://v*****se:20080/question
You can find the source code of the server at the GitHub repo:

https://github.com/*****/AjaxAssignment
, that is if you are interested in running the server by you self [optional, but good training].

The response of the API will tell you what kind of question you should show to the user and where to send the answers. In other word, you have to analyze the response from the server to know how to display the questions and how to send new requests for answering the questions. Hyperlink is provided by the server response in a RESTful way. The server responses will also give clues about what HTTP-methods to use and how to send the answers back.

Det jag undrar nu, hur fasen gör man med detta?

Ska hämta hem frågorna och svaren från github med api eller något? Hade uppskattat all hjälp verkligen om hur man löser detta då jag kodat quizen med html, css och JS så quizen är klar utom att jag gjort misstaget och skapat egna frågor vilket man inte skulle göra. Så hoppas någon kan hjälpa mig hur man löser detta in till min quiz.

har precis börjat i skolan så är nybörjare.
Det står ju precis vad du behöver göra i texten:

Citat:
The questions will be public to the client application through a RESTful Web API. The first question (starting point of the application) is at the URL:

Yadda yadda

The response of the API will tell you what kind of question you should show to the user and where to send the answers. In other word, you have to analyze the response from the server to know how to display the questions and how to send new requests for answering the questions. Hyperlink is provided by the server response in a RESTful way. The server responses will also give clues about what HTTP-methods to use and how to send the answers back

Så, det du behöver göra är att skicka ett anrop till urlen, sedan måste du ta hand om svaret som kommer från servern, för det svaret innehåller förutom frågan även en url till nästa fråga, samt en metod som du måste använda för att nästa anrop ska funka.

Källkoden till servern ligger på github, men det är inte det som är relevant för lösningen av uppgiften.
Citera
2018-01-27, 22:59
  #6
Medlem
Worldnatures avatar
Citat:
Ursprungligen postat av tj.
Du har fått en response i JSON-format.
Kod:
{  
   
"id":1,
   
"question":"What is 1+1?",
   
"nextURL":"http://v******.se/answer/1",
   
"message":"You got your question! Now send me the answer via HTTP POST to the nextURL in JSON-format"

Nu ska du göra ett POST-anrop mot servern via URL:en du fick med svaret på frågan - dvs. 2 - som body. Pröva att göra det i Postman.


Tack.

Jag gjorde det så gick jag in på länken som dök upp i nextURL och fick fram {"message" : "This URL only accept POST"}

vad menas med detta? Är helt ute o cyklar just nu känner jag, då jag vill kunna få in det i min quiz om det nu går?
Citera
2018-01-27, 23:01
  #7
Moderator
Protons avatar
Citat:
Ursprungligen postat av Worldnature
Tack.

Jag gjorde det så gick jag in på länken som dök upp i nextURL och fick fram {"message" : "This URL only accept POST"}

vad menas med detta? Är helt ute o cyklar just nu känner jag, då jag vill kunna få in det i min quiz om det nu går?
Du använder fel metod, du försöker surfa till den med HTTP GET, men det stog ju som sagt att den endast accepterade anrop med HTTP POST.

Du kan med andra ord inte surfa till den utan vidare utan måste skicka ett POST-anrop till denna url (med rätt svar som payload) för att det ska funka.

Läs på om HTTP verbs, för du kommer troligen stöta på flera av dem om du ska börja anropa REST-apier.
Citera
2018-01-27, 23:02
  #8
Medlem
tj.s avatar
Citat:
Ursprungligen postat av Worldnature
Tack.

Jag gjorde det så gick jag in på länken som dök upp i nextURL och fick fram {"message" : "This URL only accept POST"}

vad menas med detta? Är helt ute o cyklar just nu känner jag, då jag vill kunna få in det i min quiz om det nu går?
Din webbläsare försöker skicka iväg ett GET-anrop när du går in på URL:en. Som sagt, använd Postman. Då kan du ställa in om det ska vara GET, POST, PUT eller DELETE. Eller så skriver du en metod i JavaScript som skickar rätt.
Citera
2018-01-27, 23:05
  #9
Medlem
Worldnatures avatar
aha ok, jag använde postman när jag körde detta, men använde get på question och sen när jag in på den nya länken för svaret så använde jag post. vet ej om det var rätt, men fick ett annat svar i alla fall.

Kod:
{
    "message": "The JSON-input should have a property named 'answer' and Content-Type set to 'application/json'"
}
Citera
2018-01-27, 23:08
  #10
Moderator
Protons avatar
Citat:
Ursprungligen postat av Worldnature
aha ok, jag använde postman när jag körde detta, men använde get på question och sen när jag in på den nya länken för svaret så använde jag post. vet ej om det var rätt, men fick ett annat svar i alla fall.

Kod:
{
    "message": "The JSON-input should have a property named 'answer' and Content-Type set to 'application/json'"
}
Läser du svaren du får i denna tråd ens?

Jag SA JU att du var troligen tvungen att skicka med rätt payload med. Det stog ju i förra svaret vad du behövde skicka och hur det skulle skickas.

Det där är således ett felmeddelande du får för att du har felaktig contenttype och ingen property i din payload som heter answer.

Du har troligen i och med detta meddelande fått en http felkod med som du kan hitta i postman i answerdelen, det är så ditt JavaScript senare kommer upptäcka om anropet lyckades eller ej.
Citera
2018-01-27, 23:13
  #11
Medlem
Worldnatures avatar
Citat:
Ursprungligen postat av Proton
Läser du svaren du får i denna tråd ens?

Jag SA JU att du var troligen tvungen att skicka med rätt payload med. Det stog ju i förra svaret vad du behövde skicka och hur det skulle skickas.

Det där är således ett felmeddelande du får för att du har felaktig contenttype och ingen property i din payload som heter answer.

Du har troligen i och med detta meddelande fått en http felkod med som du kan hitta i postman i answerdelen, det är så ditt JavaScript senare kommer upptäcka om anropet lyckades eller ej.


sorry.

När jag körde frågan så skulle jag använda http post och fann bara post så testa och fick detta svar

Kod:
{
    "message": "The JSON-input should have a property named 'answer' and Content-Type set to 'application/json'"
}

jag tror jag gjorde rätt nu dock, är nybörjare på detta så försöker verkligen.
Citera
2018-01-27, 23:16
  #12
Moderator
Protons avatar
Citat:
Ursprungligen postat av Worldnature
sorry.

När jag körde frågan så skulle jag använda http post och fann bara post så testa och fick detta svar

Kod:
{
    "message": "The JSON-input should have a property named 'answer' and Content-Type set to 'application/json'"
}

jag tror jag gjorde rätt nu dock, är nybörjare på detta så försöker verkligen.
Nej det där är fel, det är uppenbart att det är ett felmeddelande. Står ju till och med vad för fel du gör.

Din post-data måste ha contenttype 'application/json' och din post-body måste ha en property som heter answer (satt till något vettigt), annars kommer du få det där meddelandet tills det växer mossa på dig.

Kolla dessutom på vilken svarskod du har fått ifrån servern, det skulle inte förvåna mig om du fått ett 5xx-fel som svar tillsammans med det där felmeddelandet (om nu restservicen är implementerad som man hade kunnat förvänta sig).
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback