Read the input values.

        Returns a list of dictionaries. These will be used to automatically
        pass them into the method.

        Additionally a combined dictionary is written to `self.data`.

        In the case of JSON input, that element in this list will be the parsed
        JSON value. That may not be a dictionary.

def get_request_data(self):
        """
        Read the input values.

        Returns a list of dictionaries. These will be used to automatically
        pass them into the method.

        Additionally a combined dictionary is written to `self.data`.

        In the case of JSON input, that element in this list will be the parsed
        JSON value. That may not be a dictionary.
        """
        request_data = [self.path_params, self.request.GET]

        if self.request.headers.get('Content-Type') == 'application/json' \
           and self.request.body:
            try:
                post = json.loads(self.request.body)
            except ValueError:
                raise_400(self, msg='Invalid JSON content data')
            if isinstance(post, dict):
                request_data.append(post)
        else:
            request_data.append(self.request.POST)

        return request_data