2

私はRallyの世界に不慣れで、RallyRestAPIの使用方法に苦労しています。Rallyにクエリを実行して、私が最も役立つと思った関連情報を取得する方法の例がいくつかあります。私がやろうとしているのは、プロジェクトにユーザーを追加するためのC#コマンドラインツールを作成することです。RallyRestAPI.Create( "projectpermission"、いくつかの動的jsonオブジェクト)インターフェイスを使用して作成を実行しているようです。私の問題は、「動的なjsonオブジェクト」の部分を理解することです。正しく設定する方法がわかりません。誰かがそれを設定する方法の小さな例を持っているなら、私はそれをいただければ幸いです。

4

2 に答える 2

1

これを行う方法を示すコードサンプルを次に示します。ご了承ください:

  • アクセス許可を作成するコードを実行するユーザーIDは、ワークスペースまたはサブスクリプション管理者である必要があります
  • ProjectPermissionの作成を成功させるには、ユーザーはすでにワークスペース内の権限を持っている必要があります(つまり、ワークスペースユーザーである必要があります)。

    名前空間RestExample_AddUsersToProject{クラスプログラム{staticvoidMain(string [] args){

            String userName = "user@company.com";
            String userPassword = "topsecret";
            String serverUrl = "https://rally1.rallydev.com";
            String wsapiVersion = "1.38";
    
            RallyRestApi restApi = new RallyRestApi(
                userName,
                userPassword,
                serverUrl,
                wsapiVersion
            );
    
            restApi.Headers[RallyRestApi.HeaderType.Vendor] = "Rally Software";
            restApi.Headers[RallyRestApi.HeaderType.Name] = "RestExample_AddUsersToProject";
    
            // Query for Project for which we want to add permissions
            Request projectRequest = new Request("project");
            projectRequest.Fetch = new List<string>()
            {
                "Name",
                "Owner",
                "State",
                "Description"
            };
            String projectName = "Avalanche Hazard Mapping";
    
            projectRequest.Query = new Query("Name", Query.Operator.Equals, projectName);
            QueryResult queryProjectResults = restApi.Query(projectRequest);
            var myProject = queryProjectResults.Results.First();
            String myProjectReference = myProject["_ref"];
    
            Console.WriteLine("Project Name: " + myProject["Name"]);
            Console.WriteLine("State: " + myProject["State"]);
    
            // Query for User for whom we wish to add ProjectPermission
            Request userRequest = new Request("user");
            userRequest.Fetch = new List<string>()
                {
                    "UserName",
                    "Subscription",
                    "DisplayName"
                };
    
    
            // User needing the permissions
            userRequest.Query = new Query("UserName", Query.Operator.Equals, "\"boromir@midearth.com\"");
            QueryResult queryUserResults = restApi.Query(userRequest);
    
            var myUser = queryUserResults.Results.First();
            String myUserReference = myUser["_ref"];
    
            Console.WriteLine("Username: " + myUser["UserName"]);
            Console.WriteLine("Display Name: " + myUser["DisplayName"]);
            Console.WriteLine("Subscription: " + myUser["Subscription"]);
    
            // Setup required ProjectPermission data
            DynamicJsonObject newProjectPermission = new DynamicJsonObject();
    
            newProjectPermission["User"] = myUser;
            newProjectPermission["Project"] = myProject;
            newProjectPermission["Role"] = "Editor";
    
            // Create the permission in Rally
            CreateResult addProjectPermissionResult = restApi.Create("ProjectPermission", newProjectPermission);
    
            DynamicJsonObject fetchedProjectPermission = restApi.GetByReference(addProjectPermissionResult.Reference, "Name");
            Console.WriteLine("Created ProjectPermission with Role: " + fetchedProjectPermission["Name"]);            
        }
    }
    

    }

于 2012-11-06T16:49:40.720 に答える
0

CRUD +クエリの非常に基本的な例がいくつかあります:
http ://developer.rallydev.com/help/rest-api-net

一般的なフローは、常に新しいDynamicJsonObjectを作成し、適切なフィールドを設定してから、そのオブジェクトをRallyRestApiのCreateメソッドに渡すことです。

于 2012-11-06T05:10:02.150 に答える