JS方法将RESTful URL分解为部分并返回它们

时间:2014-04-03 08:53:56

标签: javascript angularjs rest

我有一个AngularJS Web应用程序。应用程序具有与Dev HTTP Client类似的功能(它向项目上的REST资源发送不同的HTTP方法)。它看起来像这样:

enter image description here

现在我想有可能确定输入网址的内容。 Basicaly,url可以关闭3种类型:

  1. http://localhost:8080/REST/api/contents/ - 资源收集
  2. http://localhost:8080/REST/api/contents/Q1W2E3R4T5 - 单一资源
  3. http://localhost:8080/REST/api/contents/Q1W2E3R4T5/questions - 子资源集合
  4. 我想要的是一个函数,它将url作为参数并返回一个具有3个属性的对象:

    • 指定资源集合,否则为空字符串
    • 如果指定了单个资源,否则为空字符串
    • 如果指定了子资源,否则为空字符串

    有没有人知道如何使用JS或AngularJS做这样的事情?

    每个有用的答案都受到高度赞赏和评价。谢谢。

1 个答案:

答案 0 :(得分:1)

或许这样的事情?

function breakUrl(url){

    var start = 'http://localhost:8080/REST/api/',
        s1 = url.split(start),
        s2 = s1[1].split('/');

    return {  
        resource: s2[0] || '',
        single: s2[1] || '',
        child: s2[2] || ''
    };

}

console.log(breakUrl('http://localhost:8080/REST/api/contents'));
console.log(
       breakUrl('http://localhost:8080/REST/api/contents/Q1W2E3R4T5/questions'));

http://jsfiddle.net/BL3JL/