0
API를 노출하는 플라스크 애플리케이션이 있습니다.플라스크 청사진 라우팅 디버그 방법
브라우저에서이 API를 누르면 http://admin.phones.dev/api/v2.0/manufacturers 상태 200과 예상대로 응답이 나타납니다. 요청 개체 :
{
'view_args':{},
'cookies':{
'session':u'eyJfaWQiOnsiIGIiOiJPREJsTURrNFlUZGtNRFkzWVdKbU1XRmlNalJpTldZelkySmhaVGhtT1RjPSJ9fQ.B4PxFw.4ytdqip7jIF3WJLqKyItDf8Cuu0'
},
'shallow':False,
'url_rule':<Rule '/manufacturers/' (HEAD, OPTIONS, GET) -> manufacturers.index>,
'headers':EnvironHeaders( [
('Cookie', u'session=eyJfaWQiOnsiIGIiOiJPREJsTURrNFlUZGtNRFkzWVdKbU1XRmlNalJpTldZelkySmhaVGhtT1RjPSJ9fQ.B4PxFw.4ytdqip7jIF3WJLqKyItDf8Cuu0'),
('Content-Length', u''),
('User-Agent', u'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0 ) Gecko/20100101 Firefox/31.0'),
('Connection', u'keep-alive'),
('Host', u'admin.phones.dev:5000'),
('Cache-Control', u'max-age=0'),
('Accept', u'text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8'),
('Accept-Language', u'en-US, en;q=0.5'),
('Content-Type', u''),
('Accept-Encoding', u'gzip, deflate')
] ),
'environ':{
'wsgi.multiprocess':False,
'HTTP_COOKIE':'session=eyJfaWQiOnsiIGIiOiJPREJsTURrNFlUZGtNRFkzWVdKbU1XRmlNalJpTldZelkySmhaVGhtT1RjPSJ9fQ.B4PxFw.4ytdqip7jIF3WJLqKyItDf8Cuu0',
'SERVER_SOFTWARE':'Werkzeug/0.9.4',
'SCRIPT_NAME':'/api/v2.0',
'REQUEST_METHOD':'GET',
'PATH_INFO':'/manufacturers',
'SERVER_PROTOCOL':'HTTP/1.1',
'QUERY_STRING':'',
'werkzeug.server.shutdown':<function shutdown_server at 0xb54a472c>,
'CONTENT_LENGTH':'',
'HTTP_USER_AGENT':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0',
'HTTP_CONNECTION':'keep-alive',
'SERVER_NAME':'0.0.0.0',
'REMOTE_PORT':45113,
'wsgi.url_scheme':'http',
'SERVER_PORT':'5000',
'werkzeug.request': <Request 'http: //admin.phones.dev:5000 /api/v2.0/manufacturers' [
GET
] >,
'wsgi.input':<socket._fileobject object at 0xb549a5ec>,
'HTTP_HOST':'admin.phones.dev:5000',
'wsgi.multithread':False,
'HTTP_CACHE_CONTROL':'max-age=0',
'HTTP_ACCEPT':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'wsgi.version':(1, 0),
'wsgi.run_once':False,
'wsgi.errors':<open file '<stderr>', mode 'w' at 0xb751b0d0>,
'REMOTE_ADDR':'192.168.33.1',
'HTTP_ACCEPT_LANGUAGE':'en-US,en;q=0.5',
'CONTENT_TYPE':'',
'HTTP_ACCEPT_ENCODING':'gzip, deflate'
}
}
이제 워드 프레스 앱이 있고 wp_remote_get()을 사용하여이 API에 연결하려고합니다. 그 요청이 플라스크 애플리케이션에 도달한다는 것을 알 수 있지만 어떤 이유인지 그것은 404를 반환합니다. 다시 객체 요청 :
{
'headers':EnvironHeaders( [
('Content-Length', u''),
('User-Agent', u'WordPress/3.9.1; http://cbp-v2.localhost.com'),
('Host', u'admin.phones.dev'),
('Content-Type', u''),
('Accept-Encoding', u'deflate;q=1.0, compress;q=0.5, gzip;q=0.5')
] ),
'cookies':{
},
'shallow':False,
'environ':{
'wsgi.multiprocess':False,
'SERVER_SOFTWARE':'Werkzeug/0.9.4',
'SCRIPT_NAME':'/api/v2.0',
'REQUEST_METHOD':'GET',
'PATH_INFO':'/manufacturers',
'SERVER_PROTOCOL':'HTTP/1.0',
'QUERY_STRING':'',
'werkzeug.server.shutdown':<function shutdown_server at 0xb54a479c>,
'CONTENT_LENGTH':'',
'HTTP_USER_AGENT':'WordPress/3.9.1; http://cbp-v2.localhost.com',
'SERVER_NAME':'0.0.0.0',
'REMOTE_PORT':45115,
'wsgi.url_scheme':'http',
'SERVER_PORT':'5000',
'werkzeug.request': <Request 'http://admin.phones.dev/api/v2.0/manufacturers' [
GET
] >,
'wsgi.input':<socket._fileobject object at 0xb549a72c>,
'HTTP_HOST':'admin.phones.dev',
'wsgi.multithread':False,
'wsgi.version':(1, 0),
'wsgi.run_once':False,
'wsgi.errors':<open file '<stderr>', mode 'w' at 0xb751b0d0>,
'REMOTE_ADDR':'192.168.33.1',
'CONTENT_TYPE':'',
'HTTP_ACCEPT_ENCODING':'deflate;q=1.0, compress;q=0.5, gzip;q=0.5'
},
'url': u'http://admin.phones.dev/api/v2.0/manufacturers',
'shallow':False,
'headers':EnvironHeaders( [
('Content-Length', u''),
('User-Agent', u'WordPress/3.9.1; http://cbp-v2.localhost.com'),
('Host', u'admin.phones.dev'),
('Content-Type', u''),
('Accept-Encoding', u'deflate;q=1.0, compress;q=0.5, gzip;q=0.5')
] ),
'environ':{
'wsgi.multiprocess':False,
'SERVER_SOFTWARE':'Werkzeug/0.9.4',
'SCRIPT_NAME':'/api/v2.0',
'REQUEST_METHOD':'GET',
'PATH_INFO':'/manufacturers',
'SERVER_PROTOCOL':'HTTP/1.0',
'QUERY_STRING':'',
'werkzeug.server.shutdown':<function shutdown_server at 0xb54a479c>,
'CONTENT_LENGTH':'',
'HTTP_USER_AGENT':'WordPress/3.9.1; http://cbp-v2.localhost.com',
'SERVER_NAME':'0.0.0.0',
'REMOTE_PORT':45115,
'wsgi.url_scheme':'http',
'SERVER_PORT':'5000',
'werkzeug.request': <Request 'http://admin.phones.dev/api/v2.0/manufacturers' [
GET
] >,
'wsgi.input':<socket._fileobject object at 0xb549a72c>,
'HTTP_HOST':'admin.phones.dev',
'wsgi.multithread':False,
'wsgi.version':(1, 0),
'wsgi.run_once':False,
'wsgi.errors':<open file '<stderr>', mode 'w' at 0xb751b0d0>,
'REMOTE_ADDR':'192.168.33.1',
'CONTENT_TYPE':'',
'HTTP_ACCEPT_ENCODING':'deflate;q=1.0, compress;q=0.5, gzip;q=0.5'
},
'routing_exception': <NotFound '404:Not Found'>
}
제 질문은 어떻게 디버깅합니까? 나는 파이썬과 플라스크에 상대적으로 새로운 편이라.