Uppgift i Programmering 2 och Webbserverprogrammering 1
Denna uppgift är ett samarbete mellan kurserna Programmering 2 och Webbserverprogrammering 1.
För att skicka information till servern använder vi den klass som hittas här (som ni också fått ut i exemplet).
För att tolka datan vi får från servern (Json) använder vi oss av Gson som kan laddas hem här.
För att få iordning klasser för tolkning av Gson kan detta vara till hjälp.
I denna kurs ska vi bygga ett REST-api med några endpoints. Vi måste även designa en databas för att lagra data i. Tips kan vara att installera ett plugin i chrome för att kunna undersöka sitt API, t.ex. Restlet.
Ni ska jobba utifrån denna kod.
-- phpMyAdmin SQL Dump -- version 4.2.7.1 -- http://www.phpmyadmin.net -- -- Värd: localhost -- Tid vid skapande: 01 feb 2018 kl 21:59 -- Serverversion: 5.5.59-0ubuntu0.14.04.1 -- PHP-version: 5.6.23-1+deprecated+dontuse+deb.sury.org~trusty+1 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; -- -- Databas: `quiz` -- -- -------------------------------------------------------- -- -- Tabellstruktur `categories` -- CREATE TABLE IF NOT EXISTS `categories` ( `id` int(11) NOT NULL, `category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_swedish_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_swedish_ci; -- -------------------------------------------------------- -- -- Tabellstruktur `questions` -- CREATE TABLE IF NOT EXISTS `questions` ( `id` int(11) NOT NULL, `category_id` int(11) NOT NULL, `question` varchar(255) COLLATE utf8mb4_swedish_ci NOT NULL, `option1` varchar(255) COLLATE utf8mb4_swedish_ci NOT NULL, `option2` varchar(255) COLLATE utf8mb4_swedish_ci NOT NULL, `option3` varchar(255) COLLATE utf8mb4_swedish_ci NOT NULL, `option4` varchar(255) COLLATE utf8mb4_swedish_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_swedish_ci; -- -------------------------------------------------------- -- -- Tabellstruktur `users` -- CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL, `login` varchar(255) CHARACTER SET utf8 COLLATE utf8_swedish_ci NOT NULL, `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_swedish_ci NOT NULL, `token` varchar(255) CHARACTER SET utf8 COLLATE utf8_swedish_ci NOT NULL, `token_datetime` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_swedish_ci; -- -- Index för dumpade tabeller -- -- -- Index för tabell `categories` -- ALTER TABLE `categories` ADD PRIMARY KEY (`id`); -- -- Index för tabell `questions` -- ALTER TABLE `questions` ADD PRIMARY KEY (`id`), ADD KEY `category_id` (`category_id`); -- -- Index för tabell `users` -- ALTER TABLE `users` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `login` (`login`), ADD UNIQUE KEY `token` (`token`), ADD KEY `token_datetime` (`token_datetime`); -- -- AUTO_INCREMENT för dumpade tabeller -- -- -- AUTO_INCREMENT för tabell `categories` -- ALTER TABLE `categories` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT för tabell `questions` -- ALTER TABLE `questions` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT för tabell `users` -- ALTER TABLE `users` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
$_POST ska innehålla följande data Array ( [login] => login [password] => password ) Som svar får man, om allt gick bra {"status_code":201} annars {"status_code":400} https://student.oedu.se/~jf/quiz-api/index.php?e=register
$_POST ska innehålla följande data Array ( [login] => login [password] => password ) Som svar får man, om allt gick bra {"status_code":200,"auth_token":"40bd001563085fc35165329ea1ff5c5ecbdbbeef","user_id":2} annars {"status_code":401} https://student.oedu.se/~jf/quiz-api/index.php?e=get-token login: TestUser password: API-test!
$_POST ska innehålla följande data Array ( [auth_token] => 40bd001563085fc35165329ea1ff5c5ecbdbbeef ) Som svar får man, om allt gick bra {"status_code":200,"categories":[{"category_id":"1","category":"Fordon & teknik"},{"category_id":"2","category":"Tro & skrock"},{"category_id":"3","category":"Jorden runt"},{"category_id":"4","category":"Kropp & knopp"}]} https://student.oedu.se/~jf/quiz-api/index.php?e=get-categories
$_POST ska innehålla följande data, där det första alternativet är det korrekta svaret. Array ( [auth_token] => 40bd001563085fc35165329ea1ff5c5ecbdbbeef [category_id] => 3 [question] => Vilken sjö har störst yta? [option1] => Torneträsk [option2] => Kallsjön [option3] => Siljan [option4] => Hornavan ) Som svar får man, om allt gick bra {"status_code":201} annars {"status_code":400} https://student.oedu.se/~jf/quiz-api/index.php?e=post-question