#15 – skapa ett api

16/09 - 2011

Här visar jag hur man skapar ett api till sin applikation. All information blir ett json objekt.


Här är alla koderna som jag använt till apin:

Config.php:

<?php
$dbhost = 'localhost';

$dbname = 'databasnamn';

$dbuser = 'databasanvändare';

$dbpass = 'lösenor';

define("DBHOST", $dbhost, true);
define("DBNAME", $dbname, true);
define("DBUSER", $dbuser, true);
define("DBPASS", $dbpass, true);

function cpdo(){
	$dbinfo = 'mysql:host='. DBHOST .';dbname='.DBNAME;
	return  $db = new PDO($dbinfo, DBUSER, DBPASS);
}
 ?>

links.php:

<?php
	// includera konfig
	require_once('config.php');
		// ta get variabeln och hämta functions namn
	 	if(isset($_GET['method']) && !empty($_GET['method'])){
	 		if(function_exists($_GET['method'])){
	 			$_GET['method']();
	 		}
	 	}

	 //hämta länkar
	function getLinks(){
		//skapa ett pdo objekt
		$db = cpdo();
		//skapa en array
		$links = array();
		//sql statemenr
		$sql = "SELECT *
		FROM links ;";
		//förbered
		$stmt = $db->prepare($sql);
		//kör
		if($stmt->execute()){
			//så länge som den hämtar
			while ( $row = $stmt->fetch()) {
				//skapa en array med information
				$push = array( 'short' => $row['short'], 'url' => $row['link']);
				//släng in den arrayen
				$links[] = $push;
			}
			//stäng
			$stmt->closeCursor();
			// encode
			$links = json_encode($links);
			//skriv ut
			echo $_GET['jsoncallback'] . '(' . $links . ')';

		}else{
			$stmt->closeCursor();
		}		

	}

	//hämta url
	function getLinkUrl(){
		//sparar korta i en variabel
		$url = $_GET['url'];
		//tar bort sho.rt
		$url = substr($url, 14);
		//skapa pdo
		$db = cpdo();
		//en array
		$links = array();
		//sql statement
		$sql = "SELECT link
		FROM links WHERE short = '$url';";
		$stmt = $db->prepare($sql);
		if($stmt->execute()){
			$row = $stmt->fetch();
			$push = array('url' => $row['link']);
			$links[] = $push;

			$stmt->closeCursor();
			$links = json_encode($links);
			echo $_GET['jsoncallback'] . '(' . $links . ')';

		}else{
			$stmt->closeCursor();
		}
	}
?>

Tags: , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>