914: API docs are wrong for api/json/reviewrequests/<id>/reviews/

ciao****@gmai***** (Google Code) (Is this you? Claim this profile.)
April 12, 2010
Making a request for reviews using the API results in the an exception.
Full debug stack trace and post request provided below.

This worked just fine prior to our upgrading to ReviewBoard Alpha 

***** POST REQUEST ****
POST https://reviewboard/api/json/reviewrequests/2938/reviews/
Content-Length: 0
Content-Type: multipart/form-data; boundary=none

****** DEBUG STACK TRACE *****
Environment:

Request Method: POST
Request URL: https://reviewboard/api/json/reviewrequests/2938/reviews/
Django Version: 1.0.2 final
Python Version: 2.4.3
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.markup',
 'django.contrib.sites',
 'django.contrib.sessions',
 'djblets.datagrid',
 'djblets.feedview',
 'djblets.siteconfig',
 'djblets.util',
 'djblets.webapi',
 'reviewboard.accounts',
 'reviewboard.admin',
 'reviewboard.changedescs',
 'reviewboard.diffviewer',
 'reviewboard.iphone',
 'reviewboard.reports',
 'reviewboard.reviews',
 'reviewboard.scmtools',
 'reviewboard.webapi',
 'django_evolution']
Installed Middleware:
('django.middleware.gzip.GZipMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.doc.XViewMiddleware',
 'django.middleware.http.ConditionalGetMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'djblets.siteconfig.middleware.SettingsMiddleware',
 'reviewboard.admin.middleware.LoadSettingsMiddleware',
 'djblets.log.middleware.LoggingMiddleware',
 'reviewboard.admin.middleware.CheckUpdatesRequiredMiddleware')


Traceback:
File
&quot;/usr/lib/python2.4/site-packages/Django-1.0.2_final-py2.4.egg/django/core/handlers/base.py&quot;
in get_response
  86.                 response = callback(request, *callback_args,
**callback_kwargs)
File
&quot;/usr/lib/python2.4/site-packages/Django-1.0.2_final-py2.4.egg/django/views/decorators/cache.py&quot;
in _wrapped_view_func
  44.         response = view_func(request, *args, **kwargs)
File
&quot;/usr/lib/python2.4/site-packages/Djblets-0.5alpha2-py2.4.egg/djblets/webapi/decorators.py&quot;
in _checklogin
  32.             response = view_func(request, *args, **kwargs)
File
&quot;/usr/lib/python2.4/site-packages/ReviewBoard-1.0alpha2-py2.4.egg/reviewboard/webapi/json.py&quot;
in review_list
  619.     return WebAPIResponse(request, {
File
&quot;/usr/lib/python2.4/site-packages/Djblets-0.5alpha2-py2.4.egg/djblets/webapi/core.py&quot;
in __init__
  186.             if request.FILES:
File
&quot;/usr/lib/python2.4/site-packages/Django-1.0.2_final-py2.4.egg/django/core/handlers/modpython.py&quot;
in _get_files
  129.             self._load_post_and_files()
File
&quot;/usr/lib/python2.4/site-packages/Django-1.0.2_final-py2.4.egg/django/core/handlers/modpython.py&quot;
in _load_post_and_files
  87.                 self._post, self._files =
self.parse_file_upload(self.META, self._req)
File
&quot;/usr/lib/python2.4/site-packages/Django-1.0.2_final-py2.4.egg/django/http/__init__.py&quot;
in parse_file_upload
  123.         parser = MultiPartParser(META, post_data,
self.upload_handlers, self.encoding)
File
&quot;/usr/lib/python2.4/site-packages/Django-1.0.2_final-py2.4.egg/django/http/multipartparser.py&quot;
in __init__
  82.             raise MultiPartParserError(&quot;Invalid content length: %r&quot; %
content_length)

Exception Type: MultiPartParserError at /api/json/reviewrequests/2938/reviews/
Exception Value: Invalid content length: 0
#1 ciao****@gmai***** (Google Code) (Is this you? Claim this profile.)
The fix for my issue was found. I needed to pass in id=>$rid with the request. 

This is not documented in the API doc however. I request that this argument
requirement be added to the doc. 

Unrelated, but also not documented, the API for updating the status for a review.
This is supported (at least for 'reopen' and 'submitted' but it is not documented.)
chipx86
#2 chipx86
I'll get to these in an API docs rewrite.
  • +Confirmed
  • +Component-API
    +Component-Docs
  • +API docs are wrong for api/json/reviewrequests/<id>/reviews/
chipx86
#3 chipx86
Closing old API doc bugs now that the new docs are up.
  • -Confirmed
    +Fixed