Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Rob Allen:
Custom OAuth2 authentication in Apiiglity
Jul 21, 2015 @ 09:05:49

In an article posted to his site Rob Allen shows you how to hook in the OAuth2 authentication for an Apigility-based application with a pre-existing database table structure that may not match the defaults Apigility is looking for.

I have a client that's writing an Apigility API that needs to talk to a database that's already in place. This also includes the users table that is to be used with Apigility's OAuth2 authentication. Getting Apigility's OAuth2 integration to talk to a specific table name is quite easy. [...] However, if you want to use different column names, that's a bit trickier as they are hardcoded in the OAuth2StoragePdo class. To get Apigility's OAuth2 components to look at the correct columns, you create your own OAuth2 Adapter. I chose to extend ZFOAuth2AdapterPdoAdapter which extends OAuth2StoragePdo and go from there.

He includes the code for this extension of the PdoAdapter (a "OAuth2Adapter" class) in the post showing the definitions of the get user, set user and check password methods the OAuth2 flow needs to match users to OAuth sessions. He also includes the code for the "OAuth2AdapterFactory" class that's used to pull the custom PDO adapter class into Apigility and, along with some configuration changes, make it available for use. Then it's just a simple matter of changing the authentication type in the Apigility UI.

tagged: apigility oauth2 authentication custom factory pdo adapter oauth tutorial

Link: http://akrabat.com/custom-oauth2-authentication-in-apiiglity/

SitePoint PHP Blog:
Mobile App Development with Zend Studio
Jun 29, 2015 @ 10:14:41

On the SitePoint PHP blog they've posted a new tutorial from Daniel Berman about using Zend Studio to create mobile applications in the same interface you're using (if you're a Zend Studio user) to create your PHP applications.

The world has turned mobile. This is not new, and it should therefore be no surprise to anyone that the results of the 2015 DevPulse survey by Zend show that a vast majority of PHP developers are working on, or intend to work on, mobile apps.

Mobile app development poses many challenges for developers, one of which is tying in the front end of the mobile application with the back-end web service APIs. This tutorial describes how to simultaneously create, test and modify both the front and back end of a modern mobile app using Zend Studio’s mobile development features.

He breaks the rest of the post up into several steps to help you get a simple mobile project up and running, complete with a basic Apigility API backend:

  • Creating a Cloud Connected Mobile Project
  • Previewing your App
  • Developing the Back-End APIs
  • Developing the Front-End
  • Testing as an Android Native App
  • Exporting a Native Application Package

The end result is a simple "cloud connected" application that can be installed directly on an Android device as a ".apk" package.

tagged: tutorial mobile application zendstudio android api apigility

Link: http://www.sitepoint.com/mobile-app-development-zend-studio/

Michelangelo van Dam:
Running Apigility on Azure
Nov 21, 2014 @ 11:55:15

Michelango van Dam has a new post on his site today walking you through the process of running Apigility on Windows Azure. Apigility is a project from Zend that makes creating and maintaining APIs much simpler (based on the Zend Framework).

Since a couple of years I've been a fan of Microsoft Azure, the cloud platform by Microsoft. It offers a platform as a service (PaaS) in the form of Azure Websites which makes it a great solution to prototype and to play with new stuff. Last year Matthew Weier O'Phinney announced Apigility at ZendCon, a manager for API design. It was immediately clear that it would revolutionise the way we would design and manage REST API's.

Michelangelo walks you through the entire process, starting locally. He shows you how to clone and set up the latest version of Apigility and create a basic endpoint named "demo". He adds in a bit of code to handle the API request (returning user data) and includes an example of what the REST request looks like. With that up and running, he moves on to the Azure side of things. He shows you how to create a "web.config" file to configure the Azure server and run Composer as the install is being processed. He helps you get an Azure account set up and shows how to set up the website instance where you'll deploy the application, pointing it to a GitHub repository as a deploy source.

tagged: apigility windows azure deploy tutorial introduction rest api

Link: http://www.dragonbe.com/2014/11/running-apigility-on-azure.html

Matthew Weier O'Phinney:
Apigility: Using RPC with HAL
Mar 28, 2014 @ 10:48:37

Matthew Weier O'Phinney has a new post sharing some of the details about using RPC and HAL in the Apigility API tool from Zend. HAL stands for "Hypermedia Access Language" and basically provides a way to define objects in an API and what they relate to.

A few days ago, we released our first beta of Apigility. We've started our documentation effort now, and one question has arisen a few times that I want to address: How can you use Hypermedia Application Language (HAL) in RPC services? Hypermedia Application Language is an IETF proposal for how to represent resources and their relations within APIs. Technically, it provides two mediatypes, application/hal+json and application/hal+xml; however, Apigility only provides the JSON variant.

He introduces some of the basics of HAL and includes an example of JSON output showing metadata about the current object such as a full link to the resource. He also includes an example of the "embedded" data, additional related data, other objects, with their own structure and links. He also briefly mentions what RPC is and how it works before getting into how to set up the endpoints in your Apigility API with the help of "ContentNegotiation" functionality.

tagged: apigility hal rpc tutorial introduction

Link: http://mwop.net/blog/2014-03-26-apigility-rpc-with-hal.html

Ralph Schindler:
Authentication & Authorization in Apigility
Mar 27, 2014 @ 11:04:21

Those interested in the Apigility project from Zend might want to check out this new post from Ralph Schindler on how it handles authentication and authorization for all of the requests.

Apigility takes a lightweight, layered, yet extensible approach to solving both problems of authentication and authorization. The infrastructure is already in place and ready to be configured to use, or for more advanced use cases: to be extended. Many of these feature can be easily explored through the Apigility user interface.

He gets into authentication first, defining it briefly before getting into the Apigility-specific implementation. He talks about the three methods (HTTP basic, HTTP digest and OAuth2) and mentions where it falls in the execution as well as some screenshots of its setup. Following this he talks about the other half of the equation, authorization. He covers the "Authentication" header, the identity types and where you can find the configuration settings. He finishes off the post with an in-depth look at the different components, events and services/models that make up the authentication and authorization system and make it work.

tagged: authentication authorization apigility introduction configuration

Link: http://ralphschindler.com/2014/03/26/authentication-authorization-in-apigility

Community News:
Apigility 1.0.0beta1 Released!
Mar 25, 2014 @ 10:41:03

Zend has officially announced the release of the 1.0.0beta1 of Apigility, their API creation platform making it simpler for developers to get started making APIs, even around existing code.

We are pleased to announce the immediate availability of Apigility 1.0.0beta1! [...] This is our first beta release of Apigility, marking its initial API stability, and providing a solid preview of what to expect for the first stable release. [...] Apigility provides tools for describing and documenting your APIs, both RESTful and RPC. You can indicate the URL that provides a service, what HTTP methods are allowed, what representations (e.g., JSON, HTML, XML) can be provided, how many items to present per page of a collection, and more.

The release goes on to talk about some of the other features of Apigility including the standard of JSON responses, custom validation for incoming data and an implementation of the Swagger UI bundled for documentation of your service. There's also a list of things (with code examples on some) about what's changed in this beta release since 0.9.1. There's also a brief look at the end of the roadmap ahead, with an emphasis on a full, stable release soon.

tagged: apigility api zendframework beta release

Link: http://framework.zend.com/blog/apigility-1-0-0beta1-released.html

Michelangelo van Dam:
Bootstrapping ZF1 application in Apigilty
Mar 11, 2014 @ 10:42:27

Michelangelo van Dam has a new post sharing a method he's come up with for boostrapping Zend Framework v1 components inside of an Apigility-based application.

Apigility is a Zend Framework 2 tool that provides a REST API management interface, which is very useful if you want to build an API. Apigility can directly connect with your database and offer a full REST API for your application, but in most cases you already have an application build with Zend Framework 1.x (ZF1). Let's assume you have incorporated a lot of business logic in this application so it would be a waste not to use it building a rich REST API.

He uses the gitmodules functionality to bring his entire ZF1 application into the Apigility app's structure (or, alternatively, Subversion). He shows how to use Composer to install the actual Zend Framework v1 copy and how to pull in other third-party libraries. He includes the code you'll need to use to create a "ZF2APP_PATH" constant to get to the application path of Zend Framework v2 instance. He then gets into the main part - the actual autoloading and bootstrapping of the ZF1 classes/services. He gives a brief introduction to working with Apigility to make a new service and shows the update to the resource class.

tagged: bootstrap application apigility zendframework2 zendframework

Link: http://www.dragonbe.com/2014/03/bootstrapping-zf1-application-in.html

Rob Allen:
Implementing a ZF2 development mode
Jan 02, 2014 @ 09:18:07

Rob Allen has shared a method he's found for implementing a Zend Framework v2 in development mode, more specifically for an Apigility installation.

One feature that piqued my interested in the Apigility skeleton application was development mode. [...] Behind the scenes, this [call to public/index.php] runs an action in DevelopmentModeController which copies config/development.config.php.dist to config/development.config.php. Then there is some code in public/index.php that ensures that this file is loaded.

You can then have a ModuleManager instance specifically for the development version and configuration. This allows for a greater amount of customization and removes some requirements you might have had in production. He's also created a module that handles some of this for you automatically you can drop into your installation.

tagged: zendframework2 apigility development mode tutorial

Link: http://akrabat.com/computing/implementing-a-zf2-development-mode/

Voices of the ElePHPant:
Interview with Matthew Weier O'Phinney
Dec 27, 2013 @ 09:34:14

The Voices of the ElePHPant podcast has posted it's latest episode - another interview with a member of the PHP community. In this latest interview Cal talks with Matthew Weier O'Phinney of Zend.

Matthew and Cal talk about Zend's latest offering to the PHP ecosystem - Apigility, an API generation and management system that take some of the "boring" work out of making APIs (based on Zend Framework). Matthew talks about all of the features and benefits that Apigility provides and answers some of the questions Cal has about the project.

You can listen to this latest episode either through the in-page player or by downloading the mp3 directly. You can also catch up with their past episodes (and keep up with new ones) by following their feed.

tagged: voicesoftheelephpant community matthewweierophonney interview apigility

Link: http://voicesoftheelephpant.com/2013/12/24/interview-with-matthew-weier-ophinney-2/

Inviqa techPortal:
Create a RESTful API with Apigility
Dec 04, 2013 @ 09:29:15

On the Inviqa techPortal they've posted a new tutorial from Rob Allen introducing Apigility, the recently announced API management and creation tool from Zend. He uses his usual album/music illustration to show how to create a simple API inside the tool.

On the 7th October 2013, Zend introduced Apigility to the world. Once you get beyond the name, you see a very interesting project that allows you to easily create a web service without having to worry about the nitty-gritty details. Which details? Well, Apigility will handle content negotiation, error handling and versioning for you, allowing you to concentrate on your application. In the recently tagged 0.7 release, Apigility also supports both HTTP and OAuth2 authentication. In this tutorial we will create a simple REST API that allows us to view a list of music albums, showing how to start using Apigility and how to publish an API using this tool.

He walks you through all the steps you'll need to create the basic API, more specifically around the "Albums" data and functionality:

  • Creating a new project with Composer
  • Using the Admin dashboard to create a new API
  • Making a new REST endpoint (albums)
  • Building an Album collection endpoint (with Collection, Entity and Resource)
  • Making the data model, including the table SQL

He includes all the code you'll need for these last few items and shows the curl calls to make for grabbing a single and multiple album listings. There's also a brief discussion in there about how Apigility handles API versioning with some internal handling.

tagged: apigility zend rest api tutorial introduction

Link: http://techportal.inviqa.com/2013/12/03/create-a-restful-api-with-apigility/