على الأقل كثيفة الاستخدام للموارد الطريق لاقامة 4 'جميلة' عناوين المواقع ؟

StackOverflow https://stackoverflow.com/questions/1966398

سؤال

أنا والتخطيط API للاستخدام بلدي في بيثون.ربما يوما ما سوف تجعل من الوصول بحرية, ولكن الآن أنا فقط التخطيط لاستخدامها على هوايتي الموقع.في هذه المرحلة كنت بحاجة الى بعض النصائح حول كيفية إعداد عناوين url للملفات التي تلقي على حد سواء الحصول على وطلبات الوظائف.

لنفترض واحد من الملفات يسمى function_A.py وتستخدم في هذا الشكل:

www.example.com/api/function_A.py?a=something&k=other+thing

سؤالي هو كيف اقامة 'جميلة' عناوين المواقع في API, في أقل كثافة في الموارد الطريقة ؟

أرى معظم واجهات برمجة التطبيقات النموذجي URL شكل مثل http://www.example.com/api/read بدلا من http://www.example.com/api/read.py

هي الخيارات المتاحة أمامي ربما تقتصر على mod_rewrite v/s urls.py باستخدام جانغو - أو هل هناك طريقة أخرى أبسط الخيار ؟

هذا هو الخلفية/API و أنا أفضل أن تبقى النفقات العامة إلى الحد الأدنى.أريد فقط أن التعامل مع 4 عناوين في هذا الشكل, و لا تريد أن يكون regex تحدث في كل مرة URL يسمى.

هل كانت مفيدة؟

المحلول

الميين صحيح. يعد استخدام إطار عمل مثل Ruby on Rails أو Django أسهل طريقة لإنشاء واجهة برمجة تطبيقات مريحة.

ومع ذلك ، إذا كنت لا ترغب في استخدام إطار عمل ، فيمكنك فعل الشيء نفسه باستخدام Mod_Rewrite في Apache. في الواقع ، هذا هو بالضبط ما تفعله معظم الأطر/التطبيقات التي تعمل على Apache.

على سبيل المثال ، يستخدم WordPress ملف .htaccess مثل هذا:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

هذا يوجه جميع الطلبات إلى index.php ، حيث يمكن تحليلها ومعالجتها.

تقوم الأطر مثل ROR أو Django بنفس الشيء بشكل عملي: يتم إعادة توجيه جميع الطلبات إلى ملف/فئة/وظيفة واحدة.

نصائح أخرى

تخميني هو أن خدمة ويب واجهات برمجة التطبيقات مع عناوين جميلة (الملقب بقية) يتم بناؤها عبر نوع من webframework (Werkzeug, web.py, جانغو, أبراج, cherrypy عادي wsgi, ...).

وحدة كنت تقصد أن يعتني url مطابقة/مناولة لتحديد الطريق الصحيح لهذا الطلب.

من الوثائق الأخيرة:

طرق يعالج مشكلة مثيرة للاهتمام التي تأتي في كثير من الأحيان في تطوير الشبكة ، كيف يمكنك تعيين عناوين url إلى التطبيق الخاص بك الإجراءات ؟ هذا هو كيف يمكنك أن تقول أن هذا ينبغي أن يكون الوصول إليها كما /blog/2008/01/08, ، /login يجب أن تفعل ذلك ؟ على شبكة الإنترنت العديد من أطر ثابتة إيفاد النظام ؛ على سبيل المثال ، /A/B/C يعني لقراءة الملف C في الدليل B, أو استدعاء الأسلوب C من الطبقة B في وحدة A.B.هذه تعمل بشكل جيد حتى تحتاج إلى ريفاكتور رمز ندرك أن تتحرك طريقة التغييرات العامة URL يبطل المستخدمين الإشارات المرجعية.وبالمثل ، إذا كنت ترغب في تنظيم عناوين المواقع الخاصة بك وجعل القسم إلى القسم الفرعي يجب أن تغير الخاص بك بعناية-اختبار المنطق رمز.

نعم ، .htaccess هي الطريقة التي يمكنك من خلالها رسم خريطة من عنوان URL خارجيًا جميلًا في خادم Apache إلى بعض عنوان URL اللامع الذي تقبله نظام الخدمة الخاص بك.

بعض المنصات المعقدة لديها وسائل لإنتاج عناوين URL أجمل كذلك.

لا يوجد سحر. يمكنك فقط استخدام خادم ويب تم تصميمه مع مراعاة عناوين URL المستندة إلى الملفات.

لم تعد معظم المواقع تهتم بعناوين URL المستندة إلى الملف وبدلاً من ذلك تقوم بإرسالها الخاص. هذا ما يفعله Django ، هذا ما يفعله ASP.NET MVC.

ما تحتاج إلى البحث هو mod_rewrite لأباش. سيتيح لك تعيين عناوين URL غير المستندة إلى الملف إلى ملفات Python الخاصة بك.

بدلاً من ذلك ، انظر إلى استخدام إطار عمل Python Web الذي يقوم بذلك بالفعل. web.py و Django لطيفة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top