API: Create new API on get.

I've modified functions' input parameters to be the same as the API expects to receive by GET
I've modified the get on ApiView
A minor improvement in tests.
I don't think this is correct. You first filter ``optional_args`` using ``has_get_param()``, removing the arguments for which the user hasn't provided a value, and then you call ``function`` using positional arguments.

Let's say ``function``'s definition looks like this: ``def func(a, b='foo', c='bar')``.
And the user calls it like this: ``func('something', c='something else')``.
When you do ``function(*arguments)``, your function will be called like this: ``func('something', 'something else')`` which is the same as ``func(a='something', b='something else')``.