2013-04-24 67 views
0

我正在开发一个REST API,并且在DB中有以下表格:classes,subjects,classes_subjects;以及以下资源:http://api.example.com/class资源的类表和http://api.example.com/subject资源的主题表。REST API命名混淆 - 如何命名执行任务的资源?

我想给一类学生分配一个主题(例如,将文献分配给第1类),即将class_id和subject_id保存在classes_subjects表中,但是我很难弄清楚如何命名classes_subjects表的新资源。

我不能命名为http://api.example.com/assign,因为这将是对REST原则,但分配的主体时,也将是尴尬的命名http://api.example.com/classes-subjects

我应该使用/资源类,并使用PUT?

我找不出任何名词用于分配科目的类。你们有没有人知道如何处理这类问题?

回答

2

您可以使用以下模式:

  • 获取所有教学班,主题123:

    GET /subjects/123/classes 
    
  • 关联与对象的类:

    POST /subjects/123/classes?classId=<classId> 
    
+0

大, 非常感谢 ! 但是,如果它反过来也可以吗? 'GET /班/ 15/subjects' 和 'POST /班/ 15 /科目?subjectId = ' ,这样我会得到分配给15级的所有科目,并配有一个主题关联起来上课? – Daniel 2013-04-26 11:27:59

+0

@ user1988372,是的,那也太完美了。你也可以考虑使用PUT而不是POST。在这种情况下,你会做PUT/classes/15/subjects/ 2013-04-26 17:24:17