使用@RequestParam还是@PathVariable?(Use @RequestParam or @PathVariable?)
我正在使用spring框架开发REST WebApp,现在我想知道接收数据的最佳实践。 最好用
@RequestParam
或@PathVariable
检索它们?显然我有兴趣接收像userid
或username
这样的简单数据。 使用示例:@RequestMapping(value = "/getdata", method = RequestMethod.GET) public String GetData(@RequestParam(value = "memberId", required = true) Integer memberId){ //return data for user with Id = memberid; }
要么
@RequestMapping(value = "/getdata/{memberid}", method = RequestMethod.GET) public String GetData(@pathvariable int memberid){ //return data for user with Id = memberid; }
我对REST Web服务感兴趣
I' m developing a REST WebApp with spring framework, now i'd like to know the best practice to receive data. It s best to retrieve them with
@RequestParam
or@PathVariable
?Obviously i'm interested in receiving simple data like anuserid
or anusername
. Using an example:@RequestMapping(value = "/getdata", method = RequestMethod.GET) public String GetData(@RequestParam(value = "memberId", required = true) Integer memberId){ //return data for user with Id = memberid; }
or
@RequestMapping(value = "/getdata/{memberid}", method = RequestMethod.GET) public String GetData(@pathvariable int memberid){ //return data for user with Id = memberid; }
I'm interested about REST web services
原文:
最满意答案
看看ete2 python包 ,它们的树是根据Newick树格式定义的(参见wiki:Newick获得直觉)
定义一棵树
from ete2 import Tree t = Tree("(A,(B,(E,D)));" ) # Loads a tree structure from a newick string. The returned variable ’t’ is the root node for the tree. print t /-A --| | /-B \-| | /-E \-| \-D
穿越树 (更多信息)
for node in t.traverse("postorder"): # Do some analysis on node print node.name
一个工作树遍历Python脚本
相关问题
Have a look at the ete2 python package, their trees are defined according to the Newick tree format (see wiki:Newick to gain intuition)
Defining a tree
from ete2 import Tree t = Tree("(A,(B,(E,D)));" ) # Loads a tree structure from a newick string. The returned variable ’t’ is the root node for the tree. print t /-A --| | /-B \-| | /-E \-| \-D
Traversing a tree (more information)
for node in t.traverse("postorder"): # Do some analysis on node print node.name
A working tree-traversing Python script
Related question
相关问答
更多-
如果您不想存储任何内容,并且可以进行深度优先搜索: process = TRUE; while(pNode != null) { if(process) { //stuff } if(pNode->child != null && process) { pNode = pNode->child; process = true; } else if(pNode->next != null) { pNode = ...
-
您需要执行Python教程 - 您不了解实例对象在Python实例方法中的工作方式。 你的问题在这里: def viewAll(this): if this != None: print this.data, viewAll(this.leftNode) viewAll(this.rightNode) 您需要在要调用它的实例上访问viewAll : def viewAll(this): if this != None: pri ...
-
使用的最佳方法是closest ,它找到与选择器匹配的最近的祖先元素: $this.closest('div.box-1').hide(); The best method to use is closest, which finds the nearest ancestor element that matches a selector: $this.closest('div.box-1').hide();
-
您可以尝试基于os.walk()创建一个函数。 这样的事情应该让你开始: import os def walker(base_dir, level=1, string=None): results = [] for root, dirs, files in os.walk(base_dir): _root = root.replace(base_dir + '\\', '') #you may need to remove the "+ '\\'" if _root ...
-
Haskell树遍历困惑(Haskell Tree Traverse Confused)[2023-12-18]
数据类型递归地定义树。 树由单元组成,每个单元可以是“空”,“叶”或“节点”。 “Node”案例中有2个子树也是树,这是递归定义。 这个想法是树可以是空的,也可以是单个元素,或者是连接到另外两个树的单个元素。 traverse代码也递归地工作。 如果遇到空树,则返回空列表。 如果遇到单个元素,则返回它。 如果遇到“节点”,则它会递归运行两个子树,然后将结果与++运算符组合。 The data type defines a tree recursively. A tree is composed of cel ... -
如何遍历这棵树?(how to traverse this tree?)[2022-12-29]
我选择在这里使用这个简单的递归函数find相关的节点: def find(t, search): # # Find the *first* dictionary object having # the key "search" for k in t: if k == search: return t if isinstance(t[k],dict): result = find(t[k],sear ... -
在python中定义和遍历树的有效方法是什么?(What is the efficient way to define and traverse tree in python?)[2024-01-24]
看看ete2 python包 ,它们的树是根据Newick树格式定义的(参见wiki:Newick获得直觉) 定义一棵树 from ete2 import Tree t = Tree("(A,(B,(E,D)));" ) # Loads a tree structure from a newick string. The returned variable ’t’ is the root node for the tree. print t /-A --| | /-B \-| ... -
您匹配子目录的名称,而不是当前目录的名称。 如果您只有一个带有数字的嵌套目录, if只要您进入这些子目录, if语句就会出错。 我不认为你理解在每次迭代中, root是列出目录的路径, dirs是子目录名称列表。 与root匹配: for root, dirs, files in os.walk(os.getcwd()): dirname = os.path.basename(root) val = re.search('\d+', dirname) if val: ...
-
我不确定“物化路径”是否是最好的数据结构,因为它似乎非常冗余。 也许你想查找邻接列表(即存储id ,每个条目的parent_id )或嵌套集(存储id , right邻居ID)。 这是对两种结构的一个很好的概述。 您想要的是在树上执行深度优先搜索 (DFS)。 前段时间,这个问题涉及到这个问题,所以你可能会觉得它很有用。 有一种通过SQL查询执行DFS的方法,但实现可能取决于您使用的数据库软件。 在任何情况下,您都可以使用堆栈来实现DFS,以存储您仍需要访问的元素的ID。 每次访问后,您将节点的子节点推入堆 ...
-
Python生成器遍历一棵树(Python generator traverse a tree)[2022-02-28]
出于同样的原因,仅仅从外部调用_loopallchildren(root)而不对其做任何事情也没有做任何事情。 您必须迭代生成器才能使用它。 在yield from _loopallchildren(child)您可以使用yield from _loopallchildren(child) 。 For the same reason that merely calling _loopallchildren(root) from the outside without doing anything with ...