问题列表 - 第16063页

将数据与RESTful API进行比较

对于我正在研究定义RESTful API的网站.我相信我(大多数)使用适当的资源URI并正确使用GET/POST/UPDATE/DELETE来获得它.

然而,有一点我无法弄清楚在"REST"中执行它的正确方法是什么 - 比较列表.

假设我有一个书店,顾客可以有一个愿望清单.愿望清单由书籍(其完整的书籍记录,即名称,概要等)组成,并且客户端上存在该列表的完整副本.设计RESTful API以允许客户端查询其本地心愿单的正确性(即了解在服务器端的心愿单上添加/删除了哪些书籍)的好方法是什么?

一种选择是从服务器下载完整的愿望清单并在本地进行比较.然而,这是相当多的数据(由于嵌入的内容),这是一个具有低带宽连接的移动客户端,因此这会导致很多问题.

另一种选择是不下载整个心愿单(即不包括图书信息),而只下载书籍标识符列表.这将不是太多数据(与之前的选项相比),客户端可以在本地比较列表.但是,要获得新添加的书籍的完整书籍记录,必须为每本新书进行REST调用.同样,由于这是一个网络连接不良的移动客户端,这可能会有问题.

第三个选项和我最喜欢的是,客户端将其标识符列表发送到服务器,服务器将其与心愿单进行比较,并返回删除的书籍和添加的书籍数据.这意味着单次往返并且只有必要数量的数据.由于心愿单大小估计少于100个条目,因此仅发送ID将是最小量的数据(~0.5kb).但是我不知道什么样的调用是合适的 - 它不能GET,因为我们发送数据(并将它全部放在URL中感觉不对),它不能像我们那样进行POST/UPDATE不要改变服务器上的任何东西.显然它也不是DELETE.

你会如何实现这第三个选项?

附带问题:你将如何解决这个问题(即为什么选项3愚蠢或者有什么更好的简单解决方案)?

谢谢.

PS:第四种选择是实现更复杂的协议,其中服务器跟踪列表的变化(添加/删除),并且客户端可以例如基于版本标识符或简单地时间戳查询变化.但是,我更喜欢第三种选择,因为在实现方面,它在客户端和服务器上更简单,更不容易出错.

rest

5
推荐指数
1
解决办法
1273
查看次数

linux机器有多少个打开的udp或tcp/ip连接?

可用内存,带宽,CPU,当然还有网络连接都有限制.但这些通常可以垂直扩展.linux上还有其他限制因素吗?没有内核修改可以克服它们吗?我怀疑,如果没有别的,限制因素将成为千兆以太网.但是对于有效的协议,它可能需要50K并发连接来淹没它.在我能够达到那么高之前别的东西会破裂吗?

我想我想要一个软件udp和/或tcp/ip负载均衡器.不幸的是,除了http协议之外,开源社区似乎并不存在类似的东西.但是使用epoll写一个并不是我的能力.我希望它会经过大量的调整才能使其扩展,但这是可以逐步完成的工作,而且我会成为更好的程序员.

linux udp tcp scalability c10k

5
推荐指数
1
解决办法
3661
查看次数

Plist 在模拟器中有效,但在设备上无效

从 plist 中提取的数据会显示在模拟器中但不会显示在我的测试设备上,是否有任何原因?我花了一整天的时间让它工作,直到我在实际设备上测试它时我才感到兴奋。奇怪的。

谢谢。

iphone sdk plist

5
推荐指数
1
解决办法
2541
查看次数

C语言中的管道命令问题

我正在尝试在C中为Unix创建一个简单的shell.我已经能够完成所有命令和执行的解析,但是我遇到了管道问题.我认为问题是我没有连接到正确的管道输入第二个命令.

例如,如果我键入"ls | wc",它将在"wc"命令后暂停,我认为这是因为它等待输入.我认为问题是当我使用dup2(读取[i],0),并且它没有挂钩到正确的管道时.

我知道这是一个广泛的问题,但如果有任何指示我可以得到,我会很感激.这是创建新进程并尝试管道它们的代码.

    int fileds[2];
    int reading[num_cmds];
    int writing[num_cmds];

    int p;
    for(p=0; p < num_cmds; p++)
    {
        reading[p] = -1;
        writing[p] = -1;
    }

    int j;
    for(j=0; j < num_cmds-1; j++)    //Create pipes for commands
    {
        int fileds[2];
        pipe(fileds);
        reading[j+1] = fileds[0];
        writing[j] = fileds[1];
    }

    int i = 0;
    for(i = 0; i < num_cmds;i++)
    {           
        cmd_args = parse_cmd(cmds[i],output_file,input_file,&run_bg); //Get command and args

        pid_t childpid;
        int status;
        childpid=fork();

        if (childpid >= 0) 
        {
            if (childpid == 0) …
Run Code Online (Sandbox Code Playgroud)

c unix pipe piping

10
推荐指数
1
解决办法
2807
查看次数

JavaScript:如何创建一个Object并过滤这些属性?

我有一系列像这样的房子,

{
    "homes" : [{
        "home_id"         : "1",
        "address"         : "321 Main St",
        "city"            : "Dallas",
        "state"           : "TX",
        "zip"             : "75201",
        "price"           : "925",
        "sqft"            : "1100",
        "year_built"      : "2008",
        "account_type_id" : "2",
        "num_of_beds"     : "2",
        "num_of_baths"    : "2.0",
        "geolat"          : "32.779625",
        "geolng"          : "-96.786064",
        "photo_id"        : "14",
        "photo_url_dir"   : "\/home_photos\/thumbnail\/2009\/06\/10\/"
    }],
    ..........
}
Run Code Online (Sandbox Code Playgroud)

我想提供3种不同的搜索方法.

如何返回此家庭区域数组的子集:

  • priceX和Y之间
  • 所述bathrooms> = Z
  • #bedrooms= = A或== B或== C.

例如,我如何创建psuedo代码,如:

homes.filter {price >= 150000, price <= 400000, …
Run Code Online (Sandbox Code Playgroud)

html javascript json filter

10
推荐指数
4
解决办法
1万
查看次数

将项添加到Eclipse文本查看器上下文菜单

我正在为eclipse开发一个插件.在这个插件中,我需要能够在文本编辑器中的上下文菜单中添加一个项目.到目前为止,我一直没有成功,有没有人知道如何添加这个项目.

另外,如何获取当前在编辑器中选择的文本的字符串.

非常感谢.

java eclipse plugins swt

3
推荐指数
1
解决办法
3120
查看次数

Java数组排序下降?

是否有任何简单的方法按降序对数组进行排序,就像它们在Arrays类中按升序排序一样?

或者我必须停止懒惰并自己这样做:[

java arrays sorting int

255
推荐指数
10
解决办法
39万
查看次数

我应该如何处理这个奇怪的错误?

一切都很好,最后一个问题很烦人。编译很棒,但是链接失败:

bash-3.2$ make
g++ -Wall -c -g Myworld.cc
g++ -Wall -g solvePlanningProblem.o Position.o AStarNode.o PRM.o PRMNode.o World.o SingleCircleWorld.o Myworld.o RECTANGLE.o CIRCLE.o -o solvePlanningProblem

**Undefined symbols:

"vtable for Obstacle", referenced from:
      Obstacle::Obstacle()in Myworld.o

"typeinfo for Obstacle", referenced from:
      typeinfo for RECTANGLEin RECTANGLE.o
      typeinfo for CIRCLEin CIRCLE.o

ld: symbol(s) not found

collect2: ld returned 1 exit status

make: *** [solvePlanningProblem] Error 1**
Run Code Online (Sandbox Code Playgroud)

障碍物

#ifndef Obstacle_hh 
#define Obstacle_hh

#include <vector>
#include <iostream>

class Obstacle{
public:
    Obstacle(){}
    virtual bool collidesWith(double x,double y);
    virtual void …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
5699
查看次数

从MySQL查询中选择2 COUNT()

我正在为一个游戏的排名页面工作,我希望首先按胜利排序,然后按损失排序(如果人们拥有相同数量的胜利).以下查询正常工作,以便按顺序列出一个列表,但我不知道如何将损失放入此查询中.

SELECT username, COUNT(id) AS wins 
  FROM tblBattleHistory 
  WHERE battle_type = '0' && outcome = '1' 
  GROUP BY username 
  ORDER BY wins DESC
Run Code Online (Sandbox Code Playgroud)

结果='1'表示他们赢了,所以当结果='0'时,那意味着他们输了.

mysql sql count

1
推荐指数
1
解决办法
2633
查看次数

将字符串转换为double的C++错误

我正在尝试将字符串转换为double.代码很简单.

            double first, second;
            first=atof(str_quan.c_str());
            second=atof(extra[i+1].c_str());
            cout<<first<<" "<<second<<endl;
            quantity=first/second;
Run Code Online (Sandbox Code Playgroud)

当试图转换额外的时候,编译器会向我抛出这个智慧的宝石:

错误:在extra.std中请求成员c_str :: basic_string <_CharT,_ Traits,_Alloc> :: operator [] [with _CharT = char,_Traits = std :: char_traits,_Alloc = std :: allocator](((unsigned int )(i + 1))),它是非类型char

我不知道这意味着什么.如果我输出额外的[i + 1],我得到3.如果我将额外的字符串作为字符串,程序会尝试将第一个(2)除以51(ascii为3).到底他妈发生了什么?

c++ atof

1
推荐指数
1
解决办法
6559
查看次数

标签 统计

c++ ×2

java ×2

arrays ×1

atof ×1

c ×1

c10k ×1

count ×1

eclipse ×1

filter ×1

html ×1

int ×1

iphone ×1

javascript ×1

json ×1

linux ×1

mysql ×1

pipe ×1

piping ×1

plist ×1

plugins ×1

rest ×1

scalability ×1

sdk ×1

sorting ×1

sql ×1

swt ×1

tcp ×1

udp ×1

unix ×1