mojtabaasadi / django-rulebase

Django rule base validation , inspired by laravel Request
GNU General Public License v3.0
4 stars 0 forks source link

اعتبار سنجی ریکوئست قبلی برای ریکوئست جدید #2

Closed ali-najjar closed 11 months ago

ali-najjar commented 3 years ago

سلام. من به یه باگ عجیب خوردم. البته روی دیباگ این باگ دیده شد هنوز روی خروجی نهایی تست نکردم

وقتی با پُست مَن درخواست ارسال میکنم و بعد یک درخواست برای آدرس جدید میفرستم هنوز داره پارامتر های مورد نیاز برای درخواست قبلی رو اعتبار سنجی میکنه. وقتی سرور دیباگ رو یک بار ریستارت میکنم ، مثلا تغیر کوچکی تو کد میدم تا دوباره ریست بشه باز درخواست جدید رو چک میکنه

mojtabaasadi commented 3 years ago

متونم کدی که نوشتی رو ببینم و اینکه روی چه محیطی داری اجرا میکنی؟ (pip freeze)

mojtabaasadi commented 3 years ago

متونم کدی که نوشتی رو ببینم و اینکه روی چه محیطی داری اجرا میکنی؟ (pip freeze)

ali-najjar commented 3 years ago

متونم کدی که نوشتی رو ببینم و اینکه روی چه محیطی داری اجرا میکنی؟ (pip freeze)

کلا برای هر ویو که ایجاد کنم و از دکوریتور استفاده کنم اینطوری میشه

@require_validation({
    "appmodel": "required|string",
    "keys": "required|array",
})

absl-py==0.11.0
aiodns==2.0.0
aiohttp==3.7.2
aiohttp-socks==0.5.5
alabaster==0.7.12
amqp==5.0.2
appdirs==1.4.4
asgiref==3.3.1
astroid==2.4.2
astunparse==1.6.3
async-timeout==3.0.1
attrs==20.2.0
autoapi==2.0.1
Babel==2.9.0
backcall==0.2.0
beautifulsoup4==4.9.3
billiard==3.6.3.0
CacheControl==0.12.6
cached-property==1.5.2
cachetools==4.1.1
cchardet==2.1.7
celery==5.0.2
certifi==2020.11.8
cffi==1.14.4
chardet==3.0.4
click==7.1.2
click-didyoumean==0.0.3
click-repl==0.1.6
colorama==0.4.4
cycler==0.10.0
dataclasses==0.6
dateparser==1.0.0
decorator==4.4.2
defusedxml==0.6.0
distlib==0.3.1
Django==3.1.3
django-background-tasks==1.2.5
django-celery-results==2.0.0
django-compat==1.0.15
django-cors-headers==3.4.0
django-crontab==0.7.1
django-extensions==3.1.0
django-periodically==0.3.0
django-rulebase==0.1.0
django-seed==0.2.2
djangorestframework==3.12.2
djangorestframework-jwt==1.11.0
djangorestframework-simplejwt==4.6.0
dnspython==1.16.0
docutils==0.16
doxypy==0.4.1
doxypypy==0.8.8.6
elasticsearch==7.9.1
eventlet==0.29.1
fake-useragent==0.1.11
Faker==4.1.1
filelock==3.0.12
firebase-admin==4.4.0
gast==0.3.3
geographiclib==1.50
geopy==2.0.0
gevent==20.9.0
google-api-core==1.23.0
google-api-python-client==1.12.8
google-auth==1.23.0
google-auth-httplib2==0.0.4
google-auth-oauthlib==0.4.2
google-cloud-core==1.4.4
google-cloud-firestore==2.0.2
google-cloud-storage==1.33.0
google-crc32c==1.0.0
google-pasta==0.2.0
google-resumable-media==1.1.0
googleapis-common-protos==1.52.0
googletransx==2.4.2
greenlet==0.4.17
grpcio==1.34.0
h5py==2.10.0
httplib2==0.18.1
icrawler==0.6.3
idna==2.10
imagesize==1.2.0
ipython==7.16.1
ipython-genutils==0.2.0
isodate==0.6.0
isort==5.6.4
jdatetime==3.6.2
jedi==0.17.2
Jinja2==2.11.2
Keras==2.4.3
Keras-Preprocessing==1.1.2
kiwisolver==1.3.1
kombu==5.0.2
lazy-object-proxy==1.4.3
lxml==4.6.1
Mako==1.1.3
Markdown==3.3.3
MarkupSafe==1.1.1
matplotlib==3.3.2
mccabe==0.6.1
msgpack==1.0.0
multidict==5.0.0
mypy-extensions==0.4.3
numpy==1.18.5
oauthlib==3.1.0
opencv-contrib-python==4.4.0.46
opt-einsum==3.3.0
packaging==20.7
pandas==1.1.4
parso==0.7.1
pathspec==0.8.1
pdoc3==0.9.2
pexpect==4.8.0
pickleshare==0.7.5
Pillow==8.0.1
prompt-toolkit==3.0.8
proto-plus==1.11.0
protobuf==3.14.0
psycopg2==2.8.6
psycopg2-binary==2.8.5
ptyprocess==0.6.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycares==3.1.1
pycodestyle==2.6.0
pycparser==2.20
Pygments==2.7.2
PyJWT==1.7.1
pylint==2.6.0
PyMySQL==0.10.1
pyparsing==2.4.7
pypi==2.1
PySocks==1.7.1
python-dateutil==2.8.1
python-socks==1.1.0
pytz==2020.4
PyYAML==5.3.1
redis==3.5.3
regex==2020.11.13
requests==2.25.0
requests-file==1.5.1
requests-oauthlib==1.3.0
requests-toolbelt==0.9.1
rest-condition==1.0.3
rope==0.18.0
rsa==4.6
schedule==0.6.0
scipy==1.5.4
six==1.15.0
snowballstemmer==2.0.0
soupsieve==2.0.1
Sphinx==3.3.1
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==1.0.3
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.4
sqlparse==0.4.1
tensorboard==2.3.0
tensorboard-plugin-wit==1.7.0
tensorflow==2.3.1
tensorflow-estimator==2.3.0
termcolor==1.1.0
text-unidecode==1.3
toml==0.10.2
traitlets==4.3.3
twint==2.1.21
typed-ast==1.4.1
typing-extensions==3.7.4.3
tzlocal==2.1
uritemplate==3.0.1
urllib3==1.26.2
vine==5.0.0
virtualenv==20.1.0
wcwidth==0.2.5
Werkzeug==1.0.1
wrapt==1.12.1
yarl==1.6.2
zeep==4.0.0
zope.event==4.5.0
zope.interface==5.2.0
ali-najjar commented 3 years ago

مثلا ولیدیت اول مال این هست : 127.0.0.1:8000/a

وقتی این آدرس رو صدا میزنیم درست اعتبار سنجی میشه اما اگه مثلا یه آدرس دیگه که اعتبار سنجی دیگه نیاز داره رو صدا بزنیم مثل این 127.0.0.1:8000/b باز اعتبار سنجی قبلی انجام میشه و انتظار داره توی جیسون ارسال شده اون پارامتر های مربوط به آدرس قبلی باشه

mojtabaasadi commented 3 years ago

مثلا ولیدیت اول مال این هست : 127.0.0.1:8000/a

وقتی این آدرس رو صدا میزنیم درست اعتبار سنجی میشه اما اگه مثلا یه آدرس دیگه که اعتبار سنجی دیگه نیاز داره رو صدا بزنیم مثل این 127.0.0.1:8000/b باز اعتبار سنجی قبلی انجام میشه و انتظار داره توی جیسون ارسال شده اون پارامتر های مربوط به آدرس قبلی باشه

من با همین سناریو با مشکلی مواجه نمیشم. برای هرمسیر باید جدا گانه از @require_validation استفاده شده باشه. لطفا کد ها مربوط به هر دو مسیر رو به اشتراک بگذار.