2017-02-16 14 views
2

Я стараюсь, чтобы получить представление, как построить REST-API с использованием FW/1 версии 4. я поставил это в моем Application.cfc:слишком много PathInfo с помощью buildURL

<cfset variables.framework.routes = [ 
    { "$GET/persons/:id/$" = "/persons/show/id/:id" } 
]> 

Мой метод управления

<cffunction name="show"> 
    <cfargument name="rc" type="struct" required="true"> 

    <cfset local.strURL = variables.fw.buildURL(
     action = 'persons.show', 
     queryString = 'id=123' 
    )> 

    <cfset variables.fw.renderData().data({ strURL = local.strURL }).type("json")> 
</cffunction> 

я называю /persons/123 и получить этот результат:

{"URL":"/persons/show/id/123"} 

Мне не нравится путь /show/ в этом сгенерированном URL-адресе. Это не часть URL, которую я запросил в браузере (или через AJAX и т. Д.). Есть ли способ избавиться от этого в сгенерированном URL?

ответ

2

Это не функциональность в FW/1. Это было рассмотрено в 2012 году, но было отклонено.

См: https://github.com/framework-one/fw1/issues/145

Основным вопросом был (и есть) в соответствии с Шоном Корфилд:

Интересная идея, но я думаю, вы обнаружите, что, в общем, маршруты => URL-адреса является на самом деле сопоставление «много-к-одному», поэтому вы не можете надежно пройти назад от URL-адресов (действий/параметров) до уникального маршрута. Я говорил , что несколько раз с людьми и до сих пор никому не удавалось придумать картографию, которая работает во всех случаях.