Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.
See all our reports

Profiling RESTful Services with XRebel

This post was modified from its original version, we’ve rewritten it to be more precise and updated it with the fresh information.

With the move towards API orientation, REST has become one of the most important technologies of the modern Web. RESTful web services have changed not only the architecture but also the process of how we develop web applications today.

image00

Application developers don’t always develop UI any more. Why? Creation of good UI requires a whole different set of skills than writing back-end code. Back-end requirements are usually specified like a black box. An application is required to just produce an output for the specific input, that’s it!

The output produced by the server code is usually just a plain text, in JSON or XML format, for instance. This gives a lot of flexibility in developing web applications:

  • Back-end developers can focus on the server side functionality
  • Front-end developers can easily mimic the data that is produced by the back-end to independently develop the user interface part of the application.
  • The back-end can also be used as a service for other clients and not just by the user interface of the same application.

With that said, web applications can be seen as headless from the application developer’s point of view. But hey, how could you profile headless applications with XRebel? How could you see what happens when a request hits an endpoint of the RESTful service? Have no fear, we have it covered!

Introducing Ninja UI

XRebel’s default toolbar injection does not apply to RESTful web applications, because these applications do not have any actual web page contents (into which we would usually inject the XRebel toolbar). Here’s a workaround for this case:

  • Open a new browser window.
  • Enter your application URL and add ‘/xrebel’ at the end of it.
  • Boom!

To confirm that XRebel is indeed working and that it has serving the UI at startup, check to see if the following messages appear:

2015-12-20 15:48:15 XRebel: Started XRebel for application: http://localhost:8080/
2015-12-20 15:48:15 XRebel: XRebel UI is available at http://localhost:8080/xrebel

image01

This means that XRebel has started monitoring the activity in the application that is accessible via http://localhost:8080/, and that the UI is also available at http://localhost:8080/xrebel

So that simply application developers can test the application and see the performance metrics collected by XRebel side-by-side. So it doesn’t matter if your application has a UI or not – you will still be able to profile applications with XRebel.

Got RESTful apps and need profiling? TRY XRebel for Free Now!


  • I have a JAX-RS simple service, it’s just a GET that produces a string, I did this to try out in my XRebel 2.2.1, but it doesn’t show anything on the ninja UI.

    Do I have to do something special to get it to work?