32 lines
965 B
Python
32 lines
965 B
Python
import json
|
||
import traceback
|
||
|
||
from django.shortcuts import render
|
||
from django.http import HttpResponse, HttpResponseBadRequest
|
||
from .api_methods import api_call_method, api_get_documentation
|
||
from .api_errors import *
|
||
|
||
|
||
def view_methods(request):
|
||
methods = api_get_documentation()
|
||
return render(request, 'api/index.html', {'api_methods': methods})
|
||
|
||
|
||
def call_method(request, method_name):
|
||
if request.method == "GET":
|
||
params = request.GET
|
||
elif request.method == "POST":
|
||
params = request.POST
|
||
else:
|
||
return HttpResponseBadRequest()
|
||
api_params = {}
|
||
for p in params:
|
||
# защита от нескольких параметров с одним именем
|
||
api_params[p] = params[p]
|
||
|
||
out = api_call_method(method_name, api_params)
|
||
|
||
response = HttpResponse(json.dumps(out, ensure_ascii=False, indent=4))
|
||
response.headers["Content-type"] = "application/json; charset=utf-8"
|
||
return response
|