Forum Discussion

psainiphp's avatar
psainiphp
Occasional Visitor
2 months ago

Form Input element is not coming in swagger UI for POST API

Hi All,

I am using swagger in python django rest framework. I have installed  drf-yasg==1.17.1.

I am using APIVIEW.  for post api.. it is opening a json format editor instead of form like input box.. can you any help on this. I want form like input box on swagger ui for post api. 

settings.py

INSTALLED_APPS <SPAN class="token operator">=</SPAN> <SPAN class="token punctuation">[</SPAN>
    <SPAN class="token string">'django.contrib.admin'</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">'django.contrib.auth'</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">'django.contrib.contenttypes'</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">'django.contrib.sessions'</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">'django.contrib.messages'</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">'django.contrib.staticfiles'</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">'rest_framework'</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">'account'</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">"rest_framework.authtoken"</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">'drf_yasg'</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">]</SPAN>

SWAGGER_SETTINGS <SPAN class="token operator">=</SPAN> <SPAN class="token punctuation">{</SPAN>
    <SPAN class="token string">'JSON_EDITOR'</SPAN><SPAN class="token punctuation">:</SPAN> <SPAN class="token boolean">True</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token string">'SECURITY_DEFINITIONS'</SPAN><SPAN class="token punctuation">:</SPAN> <SPAN class="token punctuation">{</SPAN>
        <SPAN class="token string">'Bearer'</SPAN><SPAN class="token punctuation">:</SPAN> <SPAN class="token punctuation">{</SPAN>
            <SPAN class="token string">'type'</SPAN><SPAN class="token punctuation">:</SPAN> <SPAN class="token string">'apiKey'</SPAN><SPAN class="token punctuation">,</SPAN>
            <SPAN class="token string">'name'</SPAN><SPAN class="token punctuation">:</SPAN> <SPAN class="token string">'Authorization'</SPAN><SPAN class="token punctuation">,</SPAN>
            <SPAN class="token string">'in'</SPAN><SPAN class="token punctuation">:</SPAN> <SPAN class="token string">'header'</SPAN><SPAN class="token punctuation">,</SPAN>
            <SPAN class="token string">"description"</SPAN><SPAN class="token punctuation">:</SPAN> <SPAN class="token punctuation">(</SPAN><SPAN class="token string">'Your JWT Token must have prefix "Bearer " keyword with space '</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
        <SPAN class="token punctuation">}</SPAN>
    <SPAN class="token punctuation">}</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">}</SPAN>

REST_FRAMEWORK <SPAN class="token operator">=</SPAN> <SPAN class="token punctuation">{</SPAN>

    <SPAN class="token string">'DEFAULT_AUTHENTICATION_CLASSES'</SPAN><SPAN class="token punctuation">:</SPAN> <SPAN class="token punctuation">(</SPAN>
        <SPAN class="token string">'rest_framework_simplejwt.authentication.JWTAuthentication'</SPAN><SPAN class="token punctuation">,</SPAN>
    <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>

    <SPAN class="token string">'DEFAULT_PARSER_CLASSES'</SPAN><SPAN class="token punctuation">:</SPAN> <SPAN class="token punctuation">[</SPAN>
        <SPAN class="token string">'rest_framework.parsers.FormParser'</SPAN><SPAN class="token punctuation">,</SPAN>
        <SPAN class="token string">'rest_framework.parsers.MultiPartParser'</SPAN><SPAN class="token punctuation">,</SPAN>
        <SPAN class="token string">'rest_framework.parsers.JSONParser'</SPAN><SPAN class="token punctuation">,</SPAN>

    <SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">}</SPAN>

urls<SPAN class="token punctuation">.</SPAN>py 

<SPAN class="token keyword">from</SPAN> django<SPAN class="token punctuation">.</SPAN>contrib <SPAN class="token keyword">import</SPAN> admin
<SPAN class="token keyword">from</SPAN> django<SPAN class="token punctuation">.</SPAN>urls <SPAN class="token keyword">import</SPAN> path<SPAN class="token punctuation">,</SPAN>include
<SPAN class="token keyword">from</SPAN> rest_framework <SPAN class="token keyword">import</SPAN> permissions
<SPAN class="token keyword">from</SPAN> drf_yasg<SPAN class="token punctuation">.</SPAN>views <SPAN class="token keyword">import</SPAN> get_schema_view
<SPAN class="token keyword">from</SPAN> drf_yasg <SPAN class="token keyword">import</SPAN> openapi


schema_view <SPAN class="token operator">=</SPAN> get_schema_view<SPAN class="token punctuation">(</SPAN>
   openapi<SPAN class="token punctuation">.</SPAN>Info<SPAN class="token punctuation">(</SPAN>
      title<SPAN class="token operator">=</SPAN><SPAN class="token string">"My frothtestops Project API"</SPAN><SPAN class="token punctuation">,</SPAN>
      default_version<SPAN class="token operator">=</SPAN><SPAN class="token string">'v1'</SPAN><SPAN class="token punctuation">,</SPAN>
      description<SPAN class="token operator">=</SPAN><SPAN class="token string">"APIs for managing various aspects of my frothtestops project."</SPAN><SPAN class="token punctuation">,</SPAN>
      terms_of_service<SPAN class="token operator">=</SPAN><SPAN class="token string">""</SPAN><SPAN class="token punctuation">,</SPAN>
      contact<SPAN class="token operator">=</SPAN>openapi<SPAN class="token punctuation">.</SPAN>Contact<SPAN class="token punctuation">(</SPAN>email<SPAN class="token operator">=</SPAN><SPAN class="token string">"support@frothdesk.com"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
      license<SPAN class="token operator">=</SPAN>openapi<SPAN class="token punctuation">.</SPAN>License<SPAN class="token punctuation">(</SPAN>name<SPAN class="token operator">=</SPAN><SPAN class="token string">""</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
   <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
   public<SPAN class="token operator">=</SPAN><SPAN class="token boolean">True</SPAN><SPAN class="token punctuation">,</SPAN>
   permission_classes<SPAN class="token operator">=</SPAN><SPAN class="token punctuation">(</SPAN>permissions<SPAN class="token punctuation">.</SPAN>AllowAny<SPAN class="token punctuation">,</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">)</SPAN>

urlpatterns <SPAN class="token operator">=</SPAN> <SPAN class="token punctuation">[</SPAN>
   path<SPAN class="token punctuation">(</SPAN><SPAN class="token string">'admin/'</SPAN><SPAN class="token punctuation">,</SPAN> admin<SPAN class="token punctuation">.</SPAN>site<SPAN class="token punctuation">.</SPAN>urls<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
   path<SPAN class="token punctuation">(</SPAN><SPAN class="token string">'swagger<format>/'</SPAN><SPAN class="token punctuation">,</SPAN> schema_view<SPAN class="token punctuation">.</SPAN>without_ui<SPAN class="token punctuation">(</SPAN>cache_timeout<SPAN class="token operator">=</SPAN><SPAN class="token number">0</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> name<SPAN class="token operator">=</SPAN><SPAN class="token string">'schema-json'</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
   path<SPAN class="token punctuation">(</SPAN><SPAN class="token string">'swagger/'</SPAN><SPAN class="token punctuation">,</SPAN> schema_view<SPAN class="token punctuation">.</SPAN>with_ui<SPAN class="token punctuation">(</SPAN><SPAN class="token string">'swagger'</SPAN><SPAN class="token punctuation">,</SPAN> cache_timeout<SPAN class="token operator">=</SPAN><SPAN class="token number">0</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> name<SPAN class="token operator">=</SPAN><SPAN class="token string">'schema-swagger-ui'</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
   path<SPAN class="token punctuation">(</SPAN><SPAN class="token string">'docs/'</SPAN><SPAN class="token punctuation">,</SPAN> schema_view<SPAN class="token punctuation">.</SPAN>with_ui<SPAN class="token punctuation">(</SPAN><SPAN class="token string">'redoc'</SPAN><SPAN class="token punctuation">,</SPAN> cache_timeout<SPAN class="token operator">=</SPAN><SPAN class="token number">0</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> name<SPAN class="token operator">=</SPAN><SPAN class="token string">'schema-redoc'</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
 
<SPAN class="token punctuation">]</SPAN>
No RepliesBe the first to reply