• 
      

    [WIP] API Explorer back-end

    Review Request #7904 — Created Jan. 24, 2016 and discarded

    Information

    Djblets
    master

    Reviewers

    An API Explorer allows developers to make requests to the Web API from their browsers without having to download XML or JSON files. The API Explorer will display the response as syntax highlighted JSON in order to be understandable and facilitate development and understanding of the Web API.

    In the future, users will be able to make POST, PUT and DELETE requests from a provided form and view documentation related to the resource.

    This patch focuses on creating an HTML Encoder that will retrieve the payload and determine the resource being accessed.

    Modifications to the way the Web API handles requests are also made to ensure that requests can also be made from a web browser.

    Tested /api/users/<user_name> and /api/users/ which returned the correct information, in the proper format which displayed correctly in a web browser.

    Description From Last Updated

    Two blank lines between these.

    brennie brennie

    This should have: from __future__ import unicode literals

    brennie brennie

    Docstring?

    brennie brennie

    Alphabetize.

    brennie brennie

    Docstring.

    brennie brennie

    Docstring.

    brennie brennie

    Docstring.

    brennie brennie

    Can we reforamt this as: return render_to_string( 'webapi/explorer.html', { 'payload': o, })

    brennie brennie

    Single quotes for strings.

    brennie brennie

    Alphabetize these.

    brennie brennie

    Can you change all these to use single quotes?

    brennie brennie

    Please format this as: if (self.mimetype == 'text/plain' or is_mimetype_a(self.mimetype, 'application/json')): # ...

    brennie brennie

    Can you change this to all use single quotes?

    brennie brennie

    Single quotes.

    brennie brennie

    We already import json above. Lets just use json.dumps.

    brennie brennie

    So our import layout is as follows: from __future__ import unicode_literals # Always first. # Standard library imports. import json …

    brennie brennie

    'datetime' imported but unused

    reviewbot reviewbot

    Col: 80 E501 line too long (86 > 79 characters)

    reviewbot reviewbot

    'Directive' imported but unused

    reviewbot reviewbot

    Col: 80 E501 line too long (110 > 79 characters)

    reviewbot reviewbot

    Col: 80 E501 line too long (110 > 79 characters)

    reviewbot reviewbot

    Col: 80 E501 line too long (113 > 79 characters)

    reviewbot reviewbot

    Col: 80 E501 line too long (113 > 79 characters)

    reviewbot reviewbot

    Col: 80 E501 line too long (110 > 79 characters)

    reviewbot reviewbot

    Col: 80 E501 line too long (110 > 79 characters)

    reviewbot reviewbot

    Col: 80 E501 line too long (113 > 79 characters)

    reviewbot reviewbot

    Col: 80 E501 line too long (113 > 79 characters)

    reviewbot reviewbot
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. 
        
    AD
    AD
    AD
    AD
    reviewbot
    1. Tool: PEP8 Style Checker
      Processed Files:
          djblets/util/templatetags/djblets_webapi.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: Pyflakes
      Processed Files:
          djblets/util/templatetags/djblets_webapi.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. 
        
    brennie
    1. 
        
    2. djblets/util/templatetags/djblets_webapi.py (Diff revision 2)
       
       
       
       
      Show all issues

      Two blank lines between these.

    3. Show all issues

      This should have:

      from __future__ import unicode literals
      
    4. Show all issues

      Docstring?

      1. For reference: dblets_webapi.py is going to be removed as it is no longer used.
    5. djblets/webapi/encoders.py (Diff revision 2)
       
       
       
       
       
      Show all issues

      Alphabetize.

    6. djblets/webapi/encoders.py (Diff revision 2)
       
       
      Show all issues

      Docstring.

    7. djblets/webapi/encoders.py (Diff revision 2)
       
       
      Show all issues

      Docstring.

    8. djblets/webapi/encoders.py (Diff revision 2)
       
       
      Show all issues

      Docstring.

    9. djblets/webapi/encoders.py (Diff revision 2)
       
       
       
      Show all issues

      Can we reforamt this as:

      return render_to_string(
          'webapi/explorer.html',
          {
              'payload': o,
          })
      
    10. djblets/webapi/encoders.py (Diff revision 2)
       
       
      Show all issues

      Single quotes for strings.

    11. djblets/webapi/responses.py (Diff revision 2)
       
       
       
      Show all issues

      Alphabetize these.

    12. djblets/webapi/responses.py (Diff revision 2)
       
       
       
       
       
       
      Show all issues

      Can you change all these to use single quotes?

    13. djblets/webapi/responses.py (Diff revision 2)
       
       
       
      Show all issues

      Please format this as:

      if (self.mimetype == 'text/plain' or
          is_mimetype_a(self.mimetype, 'application/json')):
          # ...
      
    14. djblets/webapi/responses.py (Diff revision 2)
       
       
       
       
       
       
       
       
      Show all issues

      Can you change this to all use single quotes?

    15. djblets/webapi/responses.py (Diff revision 2)
       
       
       
       
       
      Show all issues

      Single quotes.

    16. 
        
    AD
    AD
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/util/templatetags/djblets_webapi.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/util/templatetags/djblets_webapi.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. 
        
    brennie
    1. 
        
    2. djblets/webapi/encoders.py (Diff revision 3)
       
       
      Show all issues

      We already import json above. Lets just use json.dumps.

    3. djblets/webapi/encoders.py (Diff revision 3)
       
       
       
       
       
      Show all issues

      So our import layout is as follows:

      from __future__ import unicode_literals  # Always first.
      
      # Standard library imports.
      import json
      from xml.foo import bar
      
      # 3-rd party library imports.
      from django.conf import settings
      # ...
      from pygments import hilight
      
      # Our current project imports
      from djblets import foobar
      

      We put full imports import foo above partial imports (from foo import bar),

      1. Ohhh, that makes sense thanks.

    4. 
        
    AD
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/util/templatetags/djblets_webapi.py
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/util/templatetags/djblets_webapi.py
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. 
        
    AD
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/util/templatetags/djblets_webapi.py
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/util/templatetags/djblets_webapi.py
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. djblets/webapi/encoders.py (Diff revision 5)
       
       
      Show all issues
       'datetime' imported but unused
      
    3. djblets/webapi/encoders.py (Diff revision 5)
       
       
      Show all issues
      Col: 80
       E501 line too long (86 > 79 characters)
      
    4. djblets/webapi/resources/base.py (Diff revision 5)
       
       
      Show all issues
       'Directive' imported but unused
      
    5. 
        
    AD
    AD
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. djblets/webapi/resources/base.py (Diff revision 6)
       
       
      Show all issues
      Col: 80
       E501 line too long (110 > 79 characters)
      
    3. djblets/webapi/resources/base.py (Diff revision 6)
       
       
      Show all issues
      Col: 80
       E501 line too long (110 > 79 characters)
      
    4. djblets/webapi/resources/base.py (Diff revision 6)
       
       
      Show all issues
      Col: 80
       E501 line too long (113 > 79 characters)
      
    5. djblets/webapi/resources/base.py (Diff revision 6)
       
       
      Show all issues
      Col: 80
       E501 line too long (113 > 79 characters)
      
    6. 
        
    AD
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. djblets/webapi/resources/base.py (Diff revision 7)
       
       
      Show all issues
      Col: 80
       E501 line too long (110 > 79 characters)
      
    3. djblets/webapi/resources/base.py (Diff revision 7)
       
       
      Show all issues
      Col: 80
       E501 line too long (110 > 79 characters)
      
    4. djblets/webapi/resources/base.py (Diff revision 7)
       
       
      Show all issues
      Col: 80
       E501 line too long (113 > 79 characters)
      
    5. djblets/webapi/resources/base.py (Diff revision 7)
       
       
      Show all issues
      Col: 80
       E501 line too long (113 > 79 characters)
      
    6. 
        
    AD
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. 
        
    AD
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. 
        
    AD
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          djblets/webapi/resources/base.py
          djblets/webapi/responses.py
          djblets/webapi/encoders.py
      
      
    2. 
        
    AD
    david
    Review request changed
    Status:
    Discarded