viernes, 13 de mayo de 2016
Ejemplo Api con Lumen
Lumen es un microframework basado en Laravel, el cual ha sido desarrollado para crear micro servicios web.
Ya debes de tener instalado composer para continuar.
Puedes bajar la solucion de:
https://github.com/cjorellana/northwindAPI
1.) Crear el proyecto lumen, vamos a crear el proyecto con composer.
Proyecto sería api y utilizaremos la versión 5.1
2.) Comprobar y iniciar el servidor, ingrese a la carpeta api
Comprobando los comandos de lumen
php artisan serve
Navegue a:
http://localhost:8000/
Cambie el nombre de :
.env.example
a
.env
Abrimos el archivo .env y configuremos las credenciales de la base de datos.
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=ejemplo
DB_USERNAME=homestead
DB_PASSWORD=secret
Abra el archivo "api/bootstrap/app.php" y descomenta
Ahora vamos un migrate para crear la tabla categories.
php artisan make:migration create_categories_table --create="Categories"
Mostrará un mensaje:
Las migraciones se ingresan dentro de la carpeta Database/migration aquí encontrará el archivo llamado Created Migration: 2016_03_30_062918_create_categories_table abrimos este archivo.
Ahora vamos a crear la la tabla categories.
Podemos revisar si creo las tablas de manera correcta.
"app/Categories.php"
Filltable = Propiedades disponibles
hidden= Propiedades que vamos a ocultar
Get
Post
Ver
Ya debes de tener instalado composer para continuar.
Puedes bajar la solucion de:
https://github.com/cjorellana/northwindAPI
Crear proyecto
1.) Crear el proyecto lumen, vamos a crear el proyecto con composer.
Proyecto sería api y utilizaremos la versión 5.1
<?php composer create-project laravel/lumen=5.1 api ?>
2.) Comprobar y iniciar el servidor, ingrese a la carpeta api
Comprobando los comandos de lumen
php artisan
Levantando nuestro servidor con lumen,php artisan serve
Navegue a:
http://localhost:8000/
Configurar
3.) Vamos a configurar el acceso a la dbCambie el nombre de :
.env.example
a
.env
Abrimos el archivo .env y configuremos las credenciales de la base de datos.
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=ejemplo
DB_USERNAME=homestead
DB_PASSWORD=secret
Abra el archivo "api/bootstrap/app.php" y descomenta
Dotenv::load(__DIR__.'/../'); $app->withFacades(); $app->withEloquent();
Migradores
Los migradores nos sirven para crear y cambiar nuestro esquema de la base de datos, si ya tienes las tablas salta estos pasos.Ahora vamos un migrate para crear la tabla categories.
php artisan make:migration create_categories_table --create="Categories"
Mostrará un mensaje:
Created Migration: 2016_03_30_062918_create_categories_table
Las migraciones se ingresan dentro de la carpeta Database/migration aquí encontrará el archivo llamado Created Migration: 2016_03_30_062918_create_categories_table abrimos este archivo.
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateCategoriesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('Categories', function (Blueprint $table) { $table->increments('CategoryID'); $table->string('CategoryName'); $table->mediumText('Description'); $table->binary('Picture'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('Categories'); } }
Ahora vamos a crear la la tabla categories.
php artisan migrate
Migration table created successfully.
Migrated: 2016_03_30_062918_create_categories_table
Podemos revisar si creo las tablas de manera correcta.
Modelos
Vamos a crear un modelo, cree el archivo Categories.php bajo la carpeta App"app/Categories.php"
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Categories extends Model{ protected $table = 'Categories'; protected $primaryKey = 'CategoryID'; protected $fillable = ['CategoryID','CategoryName','Description']; protected $hidden = ['created_at','updated_at','Picture']; }
Filltable = Propiedades disponibles
hidden= Propiedades que vamos a ocultar
Controladores
Vamos a crear un controlador, crear un archivo llamado CategoriesController.php en la carpeta "app/Http/Controllers"<?php namespace App\Http\Controllers; use App\Categories; use Illuminate\Http\Request; class CategoriesController extends Controller { public function index() { $categories = Categories::all(); return response()->json($categories, 200); } public function getCategories($id) { $categoria = Categories::find($id); if($categoria) { return response()->json($categoria, 200); } return response()->json(["Categoria no encontrado"], 404); } public function createCategories(Request $request) { $categoria = Categories::create($request->all()); return response()->json($categoria,201); } }
Router
Vamos a crear un controlador, crear un archivo llamado router.php en la carpeta "app/Http"<?php $app->get('/categories', 'CategoriesController@index'); $app->get('/categories/{categories}', 'CategoriesController@getCategories'); $app->post('/categories', 'CategoriesController@createCategories'); ?>
Probando
Es hora de probar nuestra api, lo ideal es usar una extensión de chrome llamada POSTMAN.Get
Post
jueves, 10 de marzo de 2016
Instalar OCI en Windows
Para poder acceder
a una base de datos oracle desde php, python en windows necesitas instalar OCI
aquí los pasos para instalar en windows server con IIS.
Debe de tener instalado IIS y php para ver instalar revisar este vinculo.
Instalar PHP en windows IIS
Instalado OCI 12C
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
2.2) En system ingrese a Advanced System settings
date.timezone = America/Los_Angeles
Microsoft Visual C++
Debes asegurarte que el Microsoft Visual C++ este instalado tanto el 2010 como el 2012, seguramente ya tienes instalado el 2012 ya que es para que php funcione.
Install Microsoft Visual C++ 2010 Runtime (x86). Necesario para OCI8
Install Microsoft Visual C++ 2012 Runtime (x86). Necesario para php
Debe de tener instalado IIS y php para ver instalar revisar este vinculo.
Instalar PHP en windows IIS
Instalado OCI 12C
1.) Primer paso debe ser
instalar el cliente básico de oracle 12C, el cual pueden descargar de Instant Client debe asegurase que
debe ser 32 bits, ya que php es 32 bits.
Descargue y des comprima
el cliente de oracle 12C 21 bit en :
C:\instantclient_12_1
2.) Agregue esta ruta el
path del sistema operativo.
2.1) Panel de control,
seleccione System,
2.2) En system ingrese a Advanced System settings
2.3 ) Ingrese a variables de Entorno.
2.4)
En la ventana de Variables de ambiente seleccione Path y luego Edit....
2.5) Agregue a la variable path la ruta del
cliente de oracle en este caso: C:\instantclient_12_1
Install OCI8
Para acceder a
Oracle es necesario OCI8, por lo regular ya esta en las extensiones de php, si
no debe de bajarlo de en PECL solo asegúrate
que coincida con la versión que estas utilizando y que sea "Non
Thread Safe (NTS) x86"
En este caso en la version que descargamos de php ya tenemos la dll de OCI en nuestras extensiones, como el cliente es 12c la dll debería ser: php_oci8_12c.dll
Configurando PHP
Copiar el
archivo php.ini-production a php.ini
1.) Vamos a la
carpeta donde esta instalado php en nuestro caso la ruta es:
C:\Program
Files (x86)\PHP\v5.6
2.) Ahora borra
php.ini
3.) Copia el
archivo php.ini-production
4.) Cambia de
nombre a la copia de php.ini-production a php.ini
Habilitando
php_Oci8 en php.ini
5.) Abre php.ini y
des comenta las siguientes líneas (quitar el punto y coma):
extension_dir =
"ext".
extension=php_oci8_12c.dll
También debe des comentar la línea
de date.timezone y configurar para su región, aquí hay un listado para que
busque su país. http://php.net/manual/es/timezones.php
date.timezone = America/Los_Angeles
Microsoft Visual C++
Debes asegurarte que el Microsoft Visual C++ este instalado tanto el 2010 como el 2012, seguramente ya tienes instalado el 2012 ya que es para que php funcione.
Install Microsoft Visual C++ 2010 Runtime (x86). Necesario para OCI8
Install Microsoft Visual C++ 2012 Runtime (x86). Necesario para php
Verificando la Instalación
Hay 2 maneras de verificar que la instalación de OCI sea correcta, consola y la pagina php info.
1.) En el command Prompt de windows:
C:\>php --ri oci8
Si todo esta correcto debe dar un respuesta como esta:
Pagina de prueba.
Crear un pagina con el nombre testoci.php
Hay 2 maneras de verificar que la instalación de OCI sea correcta, consola y la pagina php info.
1.) En el command Prompt de windows:
C:\>php --ri oci8
Si todo esta correcto debe dar un respuesta como esta:
En la pagina de prueba de php donde se incluyo
phpinfo también debería mostrar que esta habilitado el oci8
Pagina de prueba.
Crear un pagina con el nombre testoci.php
<?php $conn = oci_connect('hr', 'welcome', 'mymachine.mydomain/orcl'); $stid = oci_parse($conn, 'select table_name from cat'); oci_execute($stid); echo "<table>\n"; while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { echo "<tr>\n"; foreach ($row as $item) { echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : " ")."</td>\n"; } echo "</tr>\n"; } echo "</table>\n"; ?>
Suscribirse a:
Entradas (Atom)