While developing a REST service I want to be able to manually submit some data (e.g. by PUT or POST method) to a specific URL and see the response. The only tool I know is SoapUI, which is not only a commercial product, but a bit overcomplicated while my task is so simple. There is a question about SoapUI alternatives, but all the discussion there is about SOAP services, while what I need is just some REST :-) Any ideas? I know I can write such a tool myself pretty easily, but I'd prefer not to reinvent a bicycle if there is one.
UPDATE: Mark Cidade's answer is ok, but I'd wish the tool could run on Linux too...
UPDATE 2: The solution of my choice came to be HttpRequester Firefox extension.
I have just discovered and installed RESTClient, which is a Firefox add-on (it's ideal for me as I do most development on FF, both on Windows and Linux). No idea if it's any good yet. :)
EDIT: I've started it using extensively since, and it's very good, it really gives back a lot of data about the response and the request.
My favorite is WizTools RESTClient which is written in Java. A nice feature is that it lets you save requests and responses to file if you want to reload them later. It's also cross-platform thanks to Java.
There is yet another free handy application called Postman which will let you do this. It was initially launched as a Chrome plugin and since then is available on the Mac.
I use the Chrome plugin extensively on Windows, Linux and Mac. What I find most useful is the fact that, when signed in, all your requests can be synced across all machines. I use the Mac at the office and when I get home, I pick up where I left of on a Windows machine.
Cross platform insomnia you must test it.
If you use mac then paw another option
Any HTTP request tester will do. Fiddler is a good one.
You can try this online testing tool https://reqbin.com/
For Mac and Linux there is Charles http://www.charlesproxy.com/ but it is not free.
If you need tool, which you can run on Linux, try WebScarab, it is written on Java.
https://restclientgui.codeplex.com
Download it from the downloads section
I'm Only Resting works for me.
I'm quite fond of either Fiddler (if you need to dig into things deeper) or Insomnia (if you're trying to get to grips with a particular REST API).
Fiddler runs on Linux using the Mono runtime. Insomnia provides Linux packages. I like that Insomnia has a scaffolding generator for the most popular languages, so when you made a particular REST API call work in Insomnia, you can generate code for many languages from that. Neat!
Telerik now has a new standalone software to test API's: Telerik Test Studio for APIs
http://www.telerik.com/download/teststudio-apis
If you are just looking for a lite rest client and have tried all the others here and did not like them!
I finally rested on Restlet a Chrome plugin.
It is commercial software, but "appears" to be free to use if you are only making requests, which is all I need now.
I may try the trial in the future.
cURL is free and runs on almost everything.
Related
I'm android developer I'm making app with simple login and sending and receiving messages and pictures. Searching on internet making me really confuse. I don't know where to start and what to use. There are many ways to make and many libraries like node.js php phalcon, asp.net mvc, ruby sinatra etc. I just want to where should i start and what should i use.
Because you mentioned Android, Java has many options for creating RESTful backends. Dropwizard is fairly straight-forward and comes with its own built-in server, which means you won't have to worry about setting that up yourself. Play is another good option. There's a bit of a learning curve with it, but once you figure it out, it has a lot of tools out of the box that help you make REST APIs.
Here's the documentation for Play:
https://playframework.com/documentation/2.5.x/JavaHome
P.S. - This question is likely to get flagged as not being the right fit for SO. You'll probably still get replies, but asking for opinions is something that people will try to discourage you from doing.
Just downloaded Coldfusion 9 developer for review purposes. I am at the administrator page 127.0.0.1:8300 and I think everything has worked fine. I want to do a simple "Hello World" example. One tutorial gave me a simple 6 line script to do this and it looks pretty simple and understandable. I went to notepad and created the following:
<html>
<head><title>Hello World</title></head>
<body>
<cfoutput>#ucase("hello world")#</cfoutput>
</body>
</html>
It told me to save it as helloworld.cfm in inetpub/wwwroot directory. I could not find such a directory on my system. So I saved it to C:\helloworld.cfm. Then it told me to go to my browser and type http://localhost/helloworld.cfm. I got something to the effect of a page not found error. Any help you can spare here.
Secondly, and more importantly, exactly where do I really need to be to be to create and run the above helloworld.cfm script above? Is there another tool I must have to create the above script to do this? I also understand that there is very little tutorial documentation on Coldfusion 9, why is that the case. Can you offer me any suggestions. I would really like to use this development tool. Adobe says it is the easiest development tool out there. You will have a tough time convincing me of that at this stage, however, I just might be missing a procedural/processing step thats real simple. I hope this is the case. Thanks for you valuable time.
When you installed ColdFusion did you hook it up to a webserver or did you install it in standalone mode?
Did you install it as standard ColdFusion or Multiserver?
The reason I ask is that depending on how you installed it will determine where you will find the web root.
For example, ColdFusion standard in stand alone mode will have the web root under something like C:\ColdFusion9\wwwroot
Multiserver standalone will be something like C:\Jrun4\servers\cfusion\cfusion-ear\cfusion-war\
Installation with a connection to a web server will have asked you where you server's web root is and so on
To create scripts; notepad, but there are two eclipse based IDEs you might like to try. CFEclipse is free and ColdFusion Builder is adode's commercial product.
First of all, Welcome to the ColdFusion community!
I believe Jerry has done a default ColdFusion install. The CFAdmin URL as mentioned is 8300, so i guess it is a multi server installation.
As pointed out by stephen, your web root would be something like \Jrun4\servers\cfusion\cfusion-ear\cfusion-war\
You need to place your helloworld.cfm in the above path.
I recommend ColdFusion builder/ CFEclipse to start with.
CF is a easy language, you will realize that soon :)
http://localhost/ will point to where your web server is configured. So obvious question is did you configure a web server such as IIS or Apache? Which OS are you using and which install of ColdFusion did you pick (standard, multiserver, other...)?
If you don't want to use an external web server you can use the built-in one, I have never really used it much but here is a link that should get you going: http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=webservmgmt_3.html
To create CFM files you can use pretty much any editor, the most popular one is Eclipse (http://www.eclipse.org/) coupled with the CFEclipse plugin (http://www.cfeclipse.org/). Adobe now has a IDE based on Eclipse called CFBuilder (http://www.adobe.com/products/coldfusion/cfbuilder/features/) which is gaining speed quickly, but it is not free.
Our company has a set of 3d modeling softwares written in c++ with qt based gui. We are planning to offer these applications to customers to try them from a web browser. I mean to say, we need to create web interfaces for native c++ codes. Please suggest me which technology, languages should be used. If possible please give some links to some white papers or case studies for this kind of projects. I am totally clue less :)
Ideally you would keep your c++ code on the server and use a mixture of HTML and Javascript on the browser. However since 3d modeling is so client centric you may have to run some c++ code directly in the browser.
There are a few options to look at:
Emscripten
Adobe Alchemy
Google Native Client
A Java Applet using NestedVM
Netscape plugin API
ActiveX
You could also run a few instances of your application on your server inside an XVnc session and let people use it through a VNC viewer applet. The simplest solution however is still to offer a downloadable demo of your application.
Have a look at Wt
Take a look at Native Client.
Soon you might be use WebGL to do 3D in the browser. But how long it will take for browsers to include it I do not know. But it might be good to look at it to not rule out using it in the future.
If creating everything again is too expensive, always you can create a distributed application:
One program running the main application in C++ and generating (for example) XML files.
A web application reading the XML files generated by the C++ application and translating them into the web application language (for example Adobe Flex).
Good luck!
I'm a C++ developer with basic Python skills. Here's the task, a friend of mine is running a small company and he asked me if I can make a website for him. I have no real deadline so I think it's a perfect opportunity to try sth new and do some web development.
User has to be able to add photos, change texts ect.
Do you think that Django would be an overkill for this kind of project? I have no experience with it. Perhaps I should try to customize some blog engine or Google Sites?
You may be interested in Google App Engine (http://code.google.com/appengine) which recently exhibited a rise in popularity. The application runs on Google's servers, eliminating the need to maintain Apache and worry about up-time. You basically get a Django-based solution with a data store, with an SDK which allows you to conveniently develop an application on your desktop and then upload it to appspot.com for everyone to use.
The documentation is great, and even if you eventually decide not to use it, the tutorial is excellent for getting you up to speed on Python and webapp design. There is also a codelab which contains a simple Wiki example.
If you need to set up quickly a very simple website, Wordpress can be the perfect choice.
Wordpress is born as a blogging platform, but in the newer version you can manage pages, contact form and so on. And you can find good plugins to expand its capabilities.
The administration interface of wordpress is clean and easy to use, the page or article editor is simple and powerful. Add an image in a post or in a page is easy and intuitive as in no other opensource CMS I've seen.
Django is a pretty flexible framework, it tends to scale well both up and down. It may be overkill to have to learn the whole API for just a simple site, but if you're looking to learn something new, and have some time to spare, then it's a fun platform to learn and work from. My suggestion would be to install the API and have a play around with it, read the Django book and see how you get on.
Maybe before diving into Joomla or Django a first step should be working with the technologies in a raw, pure way. Create a simple web page that excutes some server side script (python? php?) that retrieves data from a mySQL database and displays it. Throw in a little javascript too. Just so that you feel comfortable with the bare-bones fundamentals.
Then when you dive into the big frameworks and libraries, they won't seem so magical.
If you're really asking what the best tool for the job is, then you are going to have to give a little more detail than "first small web project." If what you are asking is more along the lines of you want to learn web application development and what you already know is C++ and python so what would be a good web application stack where you can leverage your current skillset, then here are some more suggestions.
Django is pretty cool. Every one has already talked about it here. As mentioned earlier, the google app engine is sort of based on Django.
Also, consider zope which is another python based web application container.
If you wanted to leverage your C++ knowledge instead, then consider Wt.
Why don't you take a look at the hello world examples for all three and decide which one looks the most interesting to you?
There are a multitude of website frameworks and kits that you could go with as opposed to starting development work from the ground up. It really depends on what kind of technology you want to go with, and how comfortable you feel with the language's potential. As mentioned above, there are things like Joomla, and If you want to stick to PhP frameworks, you could also use Drupal, which has a ton of documentation and support, and is relatively easy to understand.
If you want to venture into the Microsoft realm, you could look into DotNetNuke. It too is much like Drupal and Joomla, so it's a nice CMS framework, which you might feel more comfortable with since ASP.Net is based off of a programming language as opposed to a a scripting language, unlike Classic ASP or PhP. If you're going to go the Microsoft route, I also recommend taking a look at their BizSpark developer program - but that's more dependent on how serious your friend is on running his site as a business.
Then you also have a lot of things offered up by Google, such as their charts and visualizations -- which doesn't seems like something you're looking for, but for future reference, or cool little things like a map mashup.
It really depends on how much you're willing to learn and how much time you have and sometimes not having a rough deadline is the worst possible thing that could happen. Naturally everything starts to take longer. By the time you're done, the tech is either out of date, or you've taken so long that the business plan has changed.
using django it is easy, there is already an application for photo albums available at http://code.google.com/p/django-photologue/ it becomes with tagging too and maybe you just need to add some jquery effects to get done your site.
To get this done you just create a django project, add the applications to your settings, configure your urls and templates, and thats it.
Also i f you need a small version you can just use this code as a base of your new app.
have fun with django!!
sergio
Pylons is an excellent Python web framework based on WSGI standard. It has ported many of the features of Ruby on Rails so is great for rapid development.
I've been using it for a few years now combined with SQLAlchemy for my database layer and I've found it perfect for development of all my web sites.
It is easily good enough for production sites too.
The one downside I've found is slight complications getting it deployed on shared hosting but as long as you have shell access to your host, you should be fine.
You may try to install and customize Joomla (http://www.joomla.org/) It's full of stuff, easy to use and easy to customize also.
Everybody reaches for a framework, but, assuming this is running on Apache, why not just server side includes, and, since you have Python experience, Python CGI scripts that emit JSON for use in the UI by Javascript. By going with CGI/SSI you defer your decisions about framework and/or templating system until later, when you have more experience under your belt, but you should be able to get a reasonable amount of re-use of whatever Python code you write.
I'll cast my vote for Drupal (http://www.drupal.org)
I think LOVDbyLess might do exactly what you want. If all you need is basic blog and photo upload and a simple SNS, then check out this Ruby-on-Rails open-source thing. It's been evolving with new features and is pretty easy to set up.
One problem I've been toying with off and on is a service that requires my server to produce a screenshot of a webpage at a given url. The problem is that I don't have any idea how I would accomplish this. I mostly use a LAMP software stack, so answers that were given with that in mind would be the most helpful. Again the basic requirements are: Given a url, the server needs to produce an image file of the rendered web page at that url. Thanks in advance!
You might also want to take a look at webkit, it's known for being easier to embed (used by Adobe for AIR, by Google for Chrome, by Apple for the iPhone...) then other rendering engines. This might take a little more work to setup, but it would be a lot more stable than some hack that launched a webbrowser and took a screenshot.
IF your server is a Mac, then I recommend webkit2png, which is a short python program that leverages WebKit's Objective-C API to render an URL. Personally, I use it in combination with WWW::Mechanize to walk my development site and make screenshots of every page -- useful for testing functionality, showing clients and keeping screenshots up-to-date. The resulting screenshot is perfect, but sometimes very tall for long, scrolling pages.
IF your server has a non-bare-bones Linux distro with KDE installed, then you might try khtml2png. I have not tried that myself, but saw it mentioned on the webkit2png page.
PhantomJS is a headless (commandline) WebKit-based browser which can be easily scripted to save a screenshot of webpage.
You actually need to have the server launch the web browser in question and take a screenshot of the application with the appropriate libraries. Apache will not render the page for you so you have to have software that will.
Yes, that is what is needed. I do this in asp.net, and I actually create a WebBrowser object that is avaialable in the .Net framework class libraries to generate the screenshot.
I use the http://webthumb.bluga.net service for thumbnail generation. Robust, powerful, easy to use, and very reasonable rates. I have a high traffic production website using this service and it works very well. Given the difficulty of creating a robust web screenshot service, it's nice to have someone else do the hard work.
A non-free solution for Java is WebRenderer. Interesting feature: it can emulate Safari, IE or Firefox browsers when rendering. They have a desktop version and a headless server version. Also they have example code showing how to render a screenshot image of a webpage.
virtual framebuffer X server
I would rather recommend XVFB (virtual framebuffer X server) is the best solution for taking screenshots of a headless server. Virtual framebuffer X server xvfb provides an X server that can run on machines with no display hardware and no physical input devices.
I am using that on my server for testing URLs and taking its screenshot. We are using Ubuntu & XVFB + FIREFOX. It is working fine. Modify according to your needs.Take a look on these articles. It might be use full for you.
http://www.semicomplete.com/blog/geekery/xvfb-firefox.html
http://linux.about.com/cs/linux101/g/xvfb.htm
http://www.xfree86.org/4.0.1/Xvfb.1.html