Skip to content

Commit

Permalink
Merge pull request #27 from danvitoriano/post
Browse files Browse the repository at this point in the history
add bootstrap4's card layout / add PATCH, PUT, GET cards
  • Loading branch information
danvitoriano authored Nov 5, 2016
2 parents d6ad038 + 2585480 commit 9dab366
Show file tree
Hide file tree
Showing 4 changed files with 237 additions and 122 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# REST API Examples
It uses JSONPlaceholder Fake Online REST API for Testing and Prototyping

[https://danvitoriano.github.io/rest-api-examples/]

## Setup

Git clone this Repo (Needs Node/NPM)
Expand Down
173 changes: 99 additions & 74 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,101 +7,126 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="lib/bootstrap-4/css/bootstrap.min.css" media="screen">
<link rel="stylesheet" type="text/css" href="lib/bootstrap-4/css/bootstrap-reboot.min.css" media="screen">
<!-- <link rel="stylesheet" type="text/css" href="lib/bootstrap-4/css/sticky-footer.css" media="screen"> -->
</head>

<body>
<div class="container">
<div class="row">
<div class="col-xs-12 offset-sm-1 col-sm-10 offset-md-2 col-md-8 offset-lg-2 col-lg-8">
<div class="col-xs-10 offset-xs-1">
<div class="jumbotron mt-2 text-xs-center">
<h1 class="display-4">REST API</h1>
<p class="lead">Examples</p>
<hr class="my-2">
<p>It uses <a href="https://jsonplaceholder.typicode.com">JSONPlaceholder</a> Fake Online REST API for Testing and Prototyping</p>
<p>Test and Prototype with <a href="https://jsonplaceholder.typicode.com">JSONPlaceholder</a> Fake Online REST API</p>
</div>
</div>
<div class="row">
<div class="offset-xs-1 col-xs-10 offset-sm-2 col-sm-8 offset-md-3 col-md-6 offset-lg-4 col-lg-4">
<section>
<div class="page-header">
<h2>Add User <small>POST, jQuery, Ajax</small></h2>
</div>
<div class="row">
<div class="col-xs-12 ">
<form id="form1">
<div class="form-group">
<label for="name1">User name</label>
<input type="text" class="form-control" id="name1" placeholder="Name" tabindex="1">
</div>
<div class="form-group">
<label for="age1">Age</label>
<input type="text" class="form-control" id="age1" placeholder="Age" tabindex="2">
</div>
<button id="btn-submit1" type="button" class="btn btn-default" tabindex="3">Submit</button>
<br>
<br>
<div id="res1" class="alert" role="alert">
</div>
</form>
</div>
</div>
<div class="row">
<div class="offset-xs-1 col-xs-10">
<div class="card-columns">
<div class="card card-block">
<h4 class="card-title">POST <small class="text-muted">jQuery</small></h4>
<h6 class="card-subtitle">Add Content</h6>
<form id="form-1" class="mt-2">
<div class="form-group">
<label for="title-1">Title</label>
<input type="text" class="form-control" id="title-1" placeholder="My Awesome Title" tabindex="1">
</div>
<div class="form-group">
<label for="body-1">Body</label>
<input type="text" class="form-control" id="body-1" placeholder="This is a sample body text post." tabindex="2">
</div>
<button id="btn-submit-1" type="button" class="btn btn-primary" tabindex="3">Send</button>
</form>
<div id="res-1"></div>
</div>
</section>
<section>
<div class="page-header">
<h2>Add User <small>POST, Vanilla JavaScript, XMLHttpRequest</small></h2>
<div class="card card-block">
<h4 class="card-title">POST <small class="text-muted">JavaScript</small></h4>
<h6 class="card-subtitle">Add Content</h6>
<form id="form-2" class="mt-2">
<div class="form-group">
<label for="title-2">Title</label>
<input type="text" class="form-control" id="title-2" placeholder="My Awesome Title" tabindex="4">
</div>
<div class="form-group">
<label for="body-2">Body</label>
<input type="text" class="form-control" id="body-2" placeholder="This is a sample body text post." tabindex="5">
</div>
<button id="btn-submit-2" type="button" class="btn btn-primary" tabindex="6">Send</button>
</form>
<div id="res-2"></div>
</div>
<div class="row">
<div class="col-xs-12 ">
<form id="form2">
<div class="form-group">
<label for="name2">User name</label>
<input type="text" class="form-control" id="name2" placeholder="Name" tabindex="4">
</div>
<div class="form-group">
<label for="age2">Age</label>
<input type="text" class="form-control" id="age2" placeholder="Age" tabindex="5">
</div>
<button id="btn-submit2" type="button" class="btn btn-default" tabindex="6">Submit</button>
<br>
<br>
<div id="res2" class="alert" role="alert">
</div>
</form>
</div>
<div class="card card-block">
<h4 class="card-title">PUT <small class="text-muted">JavaScript</small></h4>
<h6 class="card-subtitle">Add Content</h6>
<form id="form-3" class="mt-2">
<div class="form-group">
<label for="id-3">ID</label>
<input type="text" class="form-control" id="id-3" placeholder="1" tabindex="7">
</div>
<div class="form-group">
<label for="title-3">Title</label>
<input type="text" class="form-control" id="title-3" placeholder="My Awesome Title" tabindex="8">
</div>
<div class="form-group">
<label for="body-3">Body</label>
<input type="text" class="form-control" id="body-3" placeholder="This is a sample body text post." tabindex="9">
</div>
<button id="btn-submit-3" type="button" class="btn btn-primary" tabindex="10">Send</button>
</form>
<div id="res-3"></div>
</div>
</section>
<section>
<div class="page-header">
<h2>Add User <small>POST, Vanilla JavaScript, XMLHttpRequest</small></h2>
<div class="card card-block">
<h4 class="card-title">PATCH <small class="text-muted">JavaScript</small></h4>
<h6 class="card-subtitle">Add Content</h6>
<form id="form-4" class="mt-2">
<div class="form-group">
<label for="id-4">ID</label>
<input type="text" class="form-control" id="id-4" placeholder="1" tabindex="11">
</div>
<div class="form-group">
<label for="title-4">Title</label>
<input type="text" class="form-control" id="title-4" placeholder="My Awesome Title" tabindex="12">
</div>
<button id="btn-submit-4" type="button" class="btn btn-primary" tabindex="13">Send</button>
</form>
<div id="res-4"></div>
</div>
<div class="row">
<div class="col-xs-12 ">
<form id="form2">
<div class="form-group">
<label for="name2">User name</label>
<input type="text" class="form-control" id="name2" placeholder="Name" tabindex="4">
</div>
<div class="form-group">
<label for="age2">Age</label>
<input type="text" class="form-control" id="age2" placeholder="Age" tabindex="5">
</div>
<button id="btn-submit2" type="button" class="btn btn-default" tabindex="6">Submit</button>
<br>
<br>
<div id="res2" class="alert" role="alert">
</div>
</form>
</div>
<div class="card card-block">
<h4 class="card-title">GET <small class="text-muted">JavaScript</small></h4>
<h6 class="card-subtitle">Load a Content</h6>
<form id="form-5" class="mt-2">
<div class="form-group">
<label for="id-5">ID</label>
<input type="text" class="form-control" id="id-5" placeholder="1" tabindex="14">
</div>
<button id="btn-submit-5" type="button" class="btn btn-primary" tabindex="15">Send</button>
</form>
<div id="res-5"></div>
</div>
</section>
</div>
</div>
</div>
<div class="row mt-2">
<div class="offset-xs-1 col-xs-10">
<hr>
<footer class="footer text-xs-center">
<p>
<span class="text-muted"><a href="https://github.com/danvitoriano/rest-api-examples">REST API Examples</a> is maintained by <a href="https://github.com/danvitoriano">danvitoriano</a> and it uses <a href="https://jsonplaceholder.typicode.com">JSONPlaceholder</a>.</span>
</p>
<p class="text-muted">
<small>You can open an issue or fork to send a Pull Request if you'd like to improve this project.</small>
</p>
</footer>
</div>
</div>
</div>

<a href="https://github.com/danvitoriano/rest-api-examples"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/365986a132ccd6a44c23a9169022c0b5c890c387/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f7265645f6161303030302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"></a>
<script src="lib/jquery/jquery.min.js"></script>
<script src="lib/bootstrap-4/js/bootstrap.min.js"></script>
<script src="js/login.js" type="text/javascript"></script>
<script src="lib/jquery/jquery.min.js"></script>
<script src="lib/bootstrap-4/js/bootstrap.min.js"></script>
<script src="js/login.js" type="text/javascript"></script>
</body>

</html>
182 changes: 135 additions & 47 deletions js/login.js
Original file line number Diff line number Diff line change
@@ -1,48 +1,136 @@
;
(function(){

var api = "https://jsonplaceholder.typicode.com";

$("#btn-submit1").click(function(){
var name1 = $("#name1").val();
var age1 = $("#age1").val();
$.ajax({
type: 'POST',
url: api + '/posts',
data: { title: name1,
body: age1,
userId: 1},
success: function(data) {
console.log("User added!", data); //the new item is returned with an ID
$("#res1").addClass("alert-success");
$("#res1").html("Name: <b>" + name1 + "</b> | Age: <b>" + age1 + "</b> | ID: <b>" + data.id + "</b>");
$("#form1")[0].reset();
}
});
});

document.getElementById("btn-submit2").addEventListener("click", function(){
var name2 = document.getElementById("name2").value;
var age2 = document.getElementById("age2").value;
var http = new XMLHttpRequest();
var params = "title=" + name2 + "&body=" + age2 + "&userId=1";
var url = api + "/posts";

http.open("POST", url, true);

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

http.onreadystatechange = function(){
if(http.readyState == 4 && http.status >= 200 && http.status <= 299){
console.log("User added!", http.responseText);
document.getElementById("res2").className += " alert-success";
var jsonResponse = JSON.parse(http.responseText);
document.getElementById("res2").innerHTML = "Name: <b>" + name2 + "</b> | Age: <b>" + age2 + "</b> | ID: <b>" + jsonResponse["id"] + "</b>";
document.getElementById("form2").reset();
}
}
http.send(params);
});


})();
(function() {

var api = "https://jsonplaceholder.typicode.com";
var userId = 1; // default to JSONPlaceholder API

var postJquery = function() {
$("#btn-submit-1").click(function() {
var title = $("#title-1").val();
var body = $("#body-1").val();
$.ajax({
type: 'POST',
url: api + '/posts',
dataType: "json",
data: {
title: title,
body: body,
userId: userId
},
success: function(data) {
console.log("Content added!", data); //the new item is returned with an ID
$("#res-1").html("<p class='text-success mt-2' role=alert>" + JSON.stringify(data) + "</p>");
$("#form-1")[0].reset();
},
error: function(data) {
console.log("Content not added!", data); //the new item is returned with an ID
$("#res-1").html("<p class='text-danger mt-2' role=alert>" + JSON.stringify(data) + "</p>");
}
});
});
}();

var postJS = function() {
document.getElementById("btn-submit-2").addEventListener("click", function() {
var title = document.getElementById("title-2").value;
var body = document.getElementById("body-2").value;
var http = new XMLHttpRequest();
var params = "title=" + title + "&body=" + body + "&userId=" + userId;
var url = api + "/posts";

http.open("POST", url, true);

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

http.onreadystatechange = function() {
if (http.readyState == 4 && http.status >= 200 && http.status <= 299) {
console.log("Content added!", http.responseText);
document.getElementById("res-2").innerHTML = "<p class='text-success mt-2' role=alert>" + http.responseText + "</p>";
document.getElementById("form-2").reset();
} else {
console.log("User not added!", http.responseText);
document.getElementById("res-2").innerHTML = "<p class='text-danger mt-2' role=alert>" + http.status + ". ID must be from 1 to 100.</p>";
}
}
http.send(params);
});
}();

var putJS = function() {
document.getElementById("btn-submit-3").addEventListener("click", function() {
var id = document.getElementById("id-3").value;
var title = document.getElementById("title-3").value;
var body = document.getElementById("body-3").value;
var http = new XMLHttpRequest();
var params = "title=" + title + "&body=" + body + "&userId=" + userId + "&id=" + id;
var url = api + "/posts/" + id;

http.open("PUT", url, true);

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

http.onreadystatechange = function() {
if (http.readyState == 4 && http.status >= 200 && http.status <= 299) {
console.log("Content updated!", http.responseText);
document.getElementById("res-3").innerHTML = "<p class='text-success mt-2' role=alert>" + http.responseText + "</p>";
document.getElementById("form-3").reset();
} else {
console.log("Content not updated!", http.responseText);
document.getElementById("res-3").innerHTML = "<p class='text-danger mt-2' role=alert>" + http.status + ". ID must be from 1 to 100.</p>";
}
}
http.send(params);
});
}();

var patchJS = function() {
document.getElementById("btn-submit-4").addEventListener("click", function() {
var id = document.getElementById("id-4").value;
var title = document.getElementById("title-4").value;
var http = new XMLHttpRequest();
var params = "title=" + title;
var url = api + "/posts/" + id;

http.open("PATCH", url, true);

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

http.onreadystatechange = function() {
if (http.readyState == 4 && http.status >= 200 && http.status <= 299) {
console.log("Content updated!", http.responseText);
document.getElementById("res-4").innerHTML = "<p class='text-success mt-2' role=alert>" + http.responseText + "</p>";
document.getElementById("form-4").reset();
} else {
console.log("Content not updated!", http.responseText);
document.getElementById("res-4").innerHTML = "<p class='text-danger mt-2' role=alert>" + http.status + ". ID must be from 1 to 100.</p>";
}
}
http.send(params);
});
}();

var getJS = function() {
document.getElementById("btn-submit-5").addEventListener("click", function() {
var id = document.getElementById("id-5").value;
var http = new XMLHttpRequest();
var url = api + "/posts/" + id;

http.open("GET", url, true);

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

http.onreadystatechange = function() {
if (http.readyState == 4 && http.status >= 200 && http.status <= 299) {
console.log("Content loaded!", http.responseText);
document.getElementById("res-5").innerHTML = "<p class='text-success mt-2' role=alert>" + http.responseText + "</p>";
document.getElementById("form-5").reset();
} else {
console.log("Content not updated!", http.responseText);
document.getElementById("res-5").innerHTML = "<p class='text-danger mt-2' role=alert>" + http.status + ". ID must be from 1 to 100.</p>";
}
}
http.send();
});
}();

})();
2 changes: 1 addition & 1 deletion lib/bootstrap-4/js/bootstrap.min.js

Large diffs are not rendered by default.

0 comments on commit 9dab366

Please sign in to comment.