News Feed
Sections




News Archive
feed this:

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

Symfony Blog:
Improving REST in Symfony
July 11, 2014 @ 12:15:56

On the Symfony blog there's a recent post about a new effort being started to help improve REST in Symfony-based applications. William Durand talks about some of the current tools and some of the missing features/difficulties each has. This effort wants to help change that.

Building APIs with Symfony is not new. We've done that since the early beginning of Symfony: Askeet, Jobeet, it's been a long time! Nowadays, more and more web applications are made of an API and a client side application. Sharing data across applications using APIs also became an essential feature. [...] For most of us, it is not as clear as it should be, and we can certainly do better than what we have right now! Hence the creation of a working group to gather both people and knowledge for REST in Symfony: https://groups.google.com/forum/#!forum/resting-with-symfony.

The target of the group is just about anyone associated with the development of APIs: developers who build them, developers to contribute to Symfony's REST functionality, people with questions about REST and, really, anyone else interested. It's a part of their wider developer experience initiative they've recently ramped up.

0 comments voice your opinion now!
developer experience rest discussion group symfony framework

Link: http://symfony.com/blog/improving-rest-in-symfony

Dutch Web Alliance:
Using Varnish with ESI for a REST API
May 08, 2014 @ 10:23:35

In the latest post to the Dutch Web Alliance blog Bas de Nooijer looks at a handy use of ESI in Varnish as a part of the output for a REST API. ESI (Edge Side Includes) let you handle the caching and reuse of fragments of the output from your application and define different caching rules/techniques for each.

For a project I'm currently working on we are implementing a REST API. Performance for this API is critical, so amongst some other solutions Varnish is used. This was done with minimal effort, as the API already had the correct caching headers. There was a noticeable improvement, however I had the feeling this could be improved much more. I realised I can basically compare our REST API to any website, it uses HTTP in the same way. The main diffence is the content being JSON instead of HTML. Just like most websites, our API composes content in many different ways, for instance 'standalone' resources, collections of resources or embedded resources. In a website this would be a clear use case for ESI, so why not use it in our API?

He starts off by asking the question "why use ESI in an API" and compares the ESI method to the more traditional caching rules and handling. He includes two diagrams showing the flow of each handling type along with a brief description of how it would extract and combine the data. With the background out of the way, he gets into the code. He shows how to enable JSON caching in Varnish and the JSON tag information you'll need to include to tell Varnish to do its job.

0 comments voice your opinion now!
varnish rest api tutorial cache esi edge side include

Link: https://dutchweballiance.nl/techblog/using-varnish-with-esi-for-a-rest-api

Benjamin Eberlei:
SOAP and PHP in 2014
January 31, 2014 @ 09:44:42

Benjamin Eberlei has a new post today looking at the future of SOAP in PHP for the upcoming year. In his opinion, despite negative comments and harassment the technology gets, it still has the advantage over REST.

These last years REST has gotten all the buzz, everybody seems to be using it and there are lots of talks about REST on conferences. SOAP used to be big for building APIs, but everybody seems to hate it for various reasons. I have used SOAP in several projects over the last 10 years and this blog post is a random collection of information about the state of SOAP in PHP 2014, as a reminder to myself and to others as well. Why care about SOAP in 2014? For server to server (RPC) communication it still has massive time to market and stability benefits over REST.

He points out some things REST lacks like a standard to describe endpoints and a way to automatically generate clients in any language. He then gets into some of the basics of SOAP and PHP's included functionality. He shows some of the configuration options you can use for things like debug output, exceptions and custom exception handlers. He recommends the Zend Frameworks SOAP Autodiscovery for generating WSDLs and the XSD-TO-PHP library to create objects from a well-defined WSDL. He covers the different modes you can use to "talk SOAP" and using the ZendSoapClientLocal to make a request without the need of a web server.

0 comments voice your opinion now!
soap rest comparison wsdl soapserver introduction

Link: http://www.whitewashing.de/2014/01/31/soap_and_php_in_2014.html

David Makin:
Creating a simple REST application with Silex part 2
January 24, 2014 @ 12:17:35

David Makin has posted the second part of his series looking at creating a simple REST API with the help of Silex. You can find part one here to get caught up.

In part 1 you installed Silex and setup 2 routes, / and /{stockcode}. Now lets expand upon those by adding a POST and a DELETE route. The 2 routes we created use GET but to make your application truly useful you will want to use at least 1 more type and that is POST.

He starts by adding a new POST route to handle the creation of a new "toy", complete with a correct response of a 200 code (HTTP for "created"). He follows this with a DELETE example, showing how to return a 204 if the delete works or a server error if something goes wrong. He also includes a curl call to test out the endpoints. In the upcoming third part David will look at breaking up the code a bit and putting it into separate files.

0 comments voice your opinion now!
silex rest application tutorial introduction delete created

Link: http://sleep-er.co.uk/blog/2014/Creating-a-simple-REST-application-with-Silex-part2/

Codeception.com:
Testing Emails in PHP. Part 1 PHPUnit
December 18, 2013 @ 13:04:05

On Codeception.com an tutorial has been posted showing you how to use PHPUnit to test emails - verifying that your application emails are being sent with the help of a third-party service.

So how do you check that your applications sends email correctly? It looks like dealing with emails is always a challenge. How would you verify that email message is formatted and delivered correctly, without actually sending them to your clients? That's the first question. And the second question is: how can we automate testing of emails? For both questions we have an answer.

To answer the first, they recommend using a service like Mailtrap or Mailcatcher (the one they use for the post) to receive the emails for evaluation. They help you get both PHPUnit and the popular Guzzle HTTP library installed to help with resting against Mailcatcher's REST API. The example test is also included, showing a few methods that connect to the API, get the most recent messages and clear the list when it's complete. Assertions like assertEmailIsSent, assertEmailHtmlContains and assertEmailSenderEquals show how to test the message results that come back for validity.

0 comments voice your opinion now!
test unittest phpunit email send mailcatcher rest api

Link: http://codeception.com/12-15-2013/testing-emails-in-php.html

Inviqa techPortal:
Create a RESTful API with Apigility
December 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.

0 comments voice your opinion now!
apigility zend rest api tutorial introduction

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

Lee Davis:
Is a HTTP DELETE request idempotent?
November 01, 2013 @ 09:15:18

Lee Davis has a new post to his site with some thoughts about RESTful APIS and the correct response to DELETE calls when a resource has already been removed. One camp says a 404 should be thrown as it's no longer there, the other says 204 a "No Content" should always be returned. Lee looks at both sides of the argument and shares some of his own thoughts too.

Recently I had a read of an interesting post by Lukas Smith (@lsmith) about the use of the DELETE method when building RESTful services. I wanted to get my thoughts down on this. Mostly to help myself, but if it helps you determine a better approach, then great. I'm nowhere near qualified enough to preach, so this is by no means a "you should do it this way / my way is correct post", just food for thought. Besides, there are probably more questions here than answers.

He talks about the idea of "idempotence" when it comes to REST APIs and how it relates back to the DELETE discussion. He points out that the term has more to do with the end result of the request and not so much about how it's handled (and any "side effects" that may come with it). Various checks on the resource in question - like "does it exist" - could be considered a side effect of its operation. In his opinion, though, the 200 series of responses are more appropriate when a resource is actually deleted.

0 comments voice your opinion now!
delete rest api idempotent opinion resource

Link: http://www.duckheads.co.uk/is-a-http-delete-requests-idempotent/491

Lorenzo Ferrara:
Testing Apigility Code-Connected REST APIs
October 14, 2013 @ 09:30:18

Lorenzo Ferrara has a recent post to his site involving the recently released Apigility from Zend and how to to create a basic API endpoint (with code) for a REST API (complete with screenshots).

The recently announced Apigility arrives just when I'm experimenting ways to create and maintain my own set of APIs. So I could not resist to giving this new Zend tool a try. [...] The test I'm about to describe involves the creation of a "Fortune Cookie" REST API. I've tried to keep the code as simple as I could. It lacks of basic stuff but it's meant to be that way.

He talks about creating the first API and what kinds of code files were created as a result - a configuration and three for the API itself: a collection, an entity and a resource files. He shows the changes he made to the resource to return static data from a set of fortunes and the entity class to use it. His screenshots show the results of a few REST requests, one for all of the "cookies" and a few others for specific cookie instances.

0 comments voice your opinion now!
apigility rest api example tutorial

Link: http://www.lorenzoferrara.net/blog/testing-apigility-code-connected-rest-apis-9905375.html

Rob Allen:
Investigating Apigility
October 10, 2013 @ 09:48:05

A few days ago at this year's ZendCon PHP conference Zend introduced Apgility, a frontend that makes creating REST APIs with Zend Framework v2 as simple as pointing and clicking. Rob Allen has taken a more in depth look at the tool and has posted his findings to his site.

At ZendCon 2013, Zend announced Apigility which is intended to ease the creation of APIs. It consists of these things: a set of ZF2 modules that do the heavy lifting of creating an API, an application wrapper for creating standalone web API applications, a built-in administration website for use in development to define the API. Rather nicely, it supports REST and RPC and deal with error handling, versioning & content negotiation for you.

He uses his usual demo application (based on this repository) and shows how to get the software installed and running on the built-in (PHP 5.4+) web server with Composer. He walks you through the things you'll need to update in the application to fit it in with the Apigility structure, but they're pretty minimal. Once you fire up the server you'll be dropped into the main Apigility admin interface. From there he shows you how to set up a custom "album" endpoint and testing it with a simple cURL call.

0 comments voice your opinion now!
apigility rest api management build tool zend zendframework2

Link: http://akrabat.com/zend-framework-2/investigating-apigility/

Reddit.com:
Tools to test a REST API?
August 16, 2013 @ 12:53:17

On Reddit.com today there's a post asking for suggestions of tools to test a REST API from the outside (like a user, not unit testing).

Does anybody know of any tools to test a rest API from the POV fo a client? Behat and Cucumber seems to be cool, but are these the right tool to benchmark directly through http?

There's a wide range of suggestions including:

0 comments voice your opinion now!
testing tool suggestion rest api user http

Link: http://www.reddit.com/r/PHP/comments/1kg515/tools_to_test_a_rest_api


Community Events





Don't see your event here?
Let us know!


series framework laravel podcast install language community testing interview threedevsandamaybe introduction developer unittest refactor release opinion experience symfony2 code list

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework